2015-06-03 9 views
5

Hazelcast: बहु नोड स्थिरता

  1. Hazelcast सभी नोड्स भर में डेटा प्रतिकृति (मैं एक अच्छा स्रोत इस समझा, इसलिए यदि यह कहीं और उपलब्ध है, आप बस मुझे यह को इंगित कर सकता है नहीं पा सके) के बारे में प्रश्न क्लस्टर में इसलिए, यदि किसी नोड्स में डेटा बदल जाता है, तो क्या नोड अपनी प्रतिलिपि अपडेट करता है और फिर इसे अन्य नोड्स में प्रचारित करता है?

  2. मैंने कहीं पढ़ा है कि प्रत्येक डेटा नोड के स्वामित्व में है, हेज़ेलकास्ट मालिक को कैसे निर्धारित करता है? क्या मालिक डेटा संरचना में प्रति डेटा संरचना या प्रति कुंजी निर्धारित करता है?

  3. क्या हैज़ेलकास्ट "अंततः संगत" सिद्धांत का पालन करता है? (जब डेटा नोड्स में प्रसारित किया जा रहा है, तो वहां एक छोटी सी खिड़की हो सकती है जिसके दौरान डेटा नोड्स के बीच असंगत हो सकता है)

  4. संघर्ष कैसे किए जाते हैं? (दो नोड्स एक ही कुंजी-मान अद्यतन एक साथ)

उत्तर

8
  1. Hazelcast को दोहराने नहीं करता है (ReplicatedMap के अपवाद के साथ, स्पष्ट रूप से ;-)), लेकिन विभाजन डेटा। इसका मतलब है कि आपके पास एक नोड है जो किसी दिए गए कुंजी का मालिक है। उस कुंजी के सभी अपडेट मालिक के पास जाएंगे और वह संभावित अपडेट को सूचित करेगा।

  2. मालिक निम्न सूत्र का उपयोग कर संगत हैशिंग से निर्धारित होता है:

partitionId = hash(serialize(key)) % partitionCount

  1. चूंकि कुंजी प्रति केवल एक ही स्वामी है यह नहीं है अंततः लगातार लेकिन सुसंगत जब भी उत्परिवर्तन संचालन वापस आ जाता है। निम्नलिखित सभी पढ़ने के संचालन नए मूल्य देखेंगे। सामान्य परिचालन परिस्थितियों में। जब किसी प्रकार की विफलता होती है (नेटवर्क, होस्ट, ...) हम स्थिरता पर उपलब्धता का चयन करते हैं और ऐसा हो सकता है कि अभी तक अद्यतन बैकअप पुनः सक्रिय नहीं हुआ है (विशेष रूप से यदि आप एसिंक बैकअप का उपयोग करते हैं)।

  2. स्प्लिट-मस्तिष्क के बाद विवाद तब हो सकता है जब विभाजित क्लस्टर फिर से विलय हो। इस मामले के लिए आपको विवादित तत्वों को एक साथ विलय करने या दोनों में से कौन सा जीत हासिल करने के व्यवहार को परिभाषित करने के लिए MergePolicy को कॉन्फ़िगर करना होगा (या डिफ़ॉल्ट का उपयोग करें)।

+1

प्रतिक्रिया के लिए धन्यवाद। मेरे पास एक फॉलो अप प्रश्न है। कहें, एक नोड - नोड ए है 1. अब एक और नोड बी क्लस्टर में शामिल हो जाता है और कुछ महत्वपूर्ण मूल्यों के साथ एक नक्शा सम्मिलित करता है। मुझे लगता है कि बी मानचित्र और उसके द्वारा डाली गई कुंजियों का मालिक है। 2. अब बी क्लस्टर से बाहर निकलता है। हेज़ेलकास्ट अब ए में चाबियाँ दोहराएगा, जो एकमात्र शेष नोड है। 3. अब सी क्लस्टर में शामिल हो जाता है और चाबियाँ पढ़ता है। हेज़ेलकास्ट ए से महत्वपूर्ण मूल्यों को पुनर्प्राप्त करता है क्या यह सही है? – gammay

+2

जब भी कोई नोड जुड़ता/छोड़ता है तब विभाजन तालिका बदलती है, इसलिए क्लस्टर नोड्स के बीच डेटा फिर से माइग्रेट किया जाएगा। तो एक नोड में उसकी पुट कुंजियां नहीं होती हैं लेकिन चाबियाँ हमेशा वितरित की जाती हैं। – noctarius

संबंधित मुद्दे