मैं ज़ूकीपर की मदद से कैसंद्रा के लिए एक लेनदेन प्रणाली को लागू करने की कोशिश कर रहा हूं। चूंकि मुझे नहीं लगता कि मेरे पास डेटाबेस कार्यान्वयन में पर्याप्त अनुभव है, मैं जानना चाहता हूं कि मेरा विचार सिद्धांत रूप से काम करेगा या कोई बड़ी दोष है।ज़ूकीपर के साथ कैसंद्रा लेनदेन - क्या यह काम करता है?
- पहचान सभी पंक्तियों (कुंजी) और स्तंभ संपादित करने के लिए:
ये कदम उठाएँ के उच्च स्तर वर्णन है। कुंजी हो [K0..Kn]
- सभी शामिल पंक्तियों पर लिखने ताला लागू करते हैं
- कॉपी पुराने मूल्यों कैसेंड्रा में स्थानों जो विशिष्ट कुंजी से पहचाने जाते हैं अलग करने के लिए (ताले में स्मृति Zookeeper कार्यान्वयन कर रहे हैं): [ K'0..K'n]
- स्टोर [K'0..K'n] और उनके मैपिंग को [K0..Kn] में ज़ूकीपर में लगातार मोड
- का उपयोग करके अपडेट को लागू करें डेटा
- पंक्तियों अनलॉक
- प्रविष्टियों को हटा चिड़ियाघर संचालक में प्रविष्टियों को हटा ओ च [K'0..K'n] एक रखरखाव धागे पर lazily (कैसेंड्रा विलोपन, टाइमस्टैम्प का उपयोग करता है ताकि K'0..K'n एक नए समय स्टाम्प के साथ एक और लेन-देन के लिए पुन: उपयोग किया जा सकता है)
औचित्य :
- अगर लेन-देन कदम 1-4 पर विफल रही, कोई परिवर्तन नहीं लागू किया जाता है, मैं लेन-देन को निरस्त करने और हटाने जो कुछ भी यदि कोई हो, कैसेंड्रा में चिड़ियाघर संचालक और बैकअप एड में संग्रहीत किया जाता सकता है।
- यदि लेन-देन चरण 5 पर विफल हुआ, तो चरण 3 पर सहेजी गई जानकारी का उपयोग किसी भी परिवर्तन को रोलबैक करने के लिए किया जाता है।
- यदि सर्वर किसी भी अनुरोध की सेवा करने से पहले पुनरारंभ करने पर सर्वर की सफाई करके विफल/क्रैश/चोरी हो जाता है, तो मैं जांचता हूं कि ज़ूकीपर में चरण 4 से कोई भी कुंजी जारी है या नहीं, तो यदि मैं उन कुंजीों को लाने के लिए उपयोग करूंगा चरण 3 द्वारा संग्रहीत डेटा का बैक अप लिया गया है, और उन डेटा को जहां वे थे, डाल दें, इस प्रकार किसी भी असफल लेन-देन को वापस ले लें।
मेरी चिंता का एक ऐसा होगा यदि कुछ सर्वर क्लस्टर से विभाजित होते हैं। मुझे इस क्षेत्र में कोई अनुभव नहीं है, क्या मेरी योजना बिल्कुल काम करती है? और अगर विभाजन होता है तो यह काम करता है?
अनुमान मैं अपने आप यह पता लगाना और तुम लोग यह बताने के लिए होगा ... – Viele