2013-06-20 5 views
8

का कोरम नियम elasticsearch प्रलेखन के अनुसार undestanding, write_consistency स्तर कोरम के लिए नियम है:write_consistency और Elasticsearch

कोरम (> प्रतिकृतियां/2 + 1)

, ES 0.19.10 का उपयोग करते हुए एक पर के साथ 16 टुकड़े/3 प्रतिकृतियां सेटअप हम मिल जाएगा 16 प्राथमिक टुकड़े 48 प्रतिकृतियां

2 नोड्स चल रहा है, हम होगा 16 (प्राथमिक) + 16 (प्रतिकृतियां) = 32 सक्रिय टुकड़े।

कोरम नियम को पूरा करने के लिए, कोरम> 48/2 + 1 = 25 सक्रिय shards।

अब, इसका परीक्षण अन्यथा साबित होता है, जब तक हमारे पास 3 नोड्स चलते हैं, तब तक लिखने के लिए लिखना नहीं है (लिखने के संचालन के समय)। इस तरह की समझ में आता है, क्योंकि हम इस सेटअप में प्रत्येक 2 नोड्स के समूहों के बीच एक विभाजन-मस्तिष्क प्राप्त कर सकते हैं, लेकिन मुझे समझ में नहीं आता कि यह नियम कैसे काम करना है? क्या मैं यहां गलत संख्याओं का उपयोग कर रहा हूं?

+0

यह महसूस करता है कि आप की तरह लिखने स्थिरता सब करने के लिए सेट के साथ एक बड़ा समस्या की ओर इशारा कर रहा है। जांचें कि क्या आपके लेखन में 'स्थिरता' है: सभी – chaos

+0

^मेरा मतलब प्रत्येक व्यक्तिगत इंडेक्स अनुरोध पर था। – chaos

उत्तर

5

प्राथमिक ठीकरा गिनती वास्तव में कोई फर्क नहीं पड़ता, इसलिए मैं एन

से बदलने के लिए आप एन के टुकड़े और 2 प्रतिकृतियां के साथ एक सूचकांक है, तो जा रहा हूँ, वहाँ प्रतिकृति समूह में तीन टुकड़े कर रहे हैं। इसका मतलब है कि कोरम दो है: प्राथमिक प्लस प्रतिकृतियों में से एक। लिखने की स्थिरता पैरामीटर

एन शर्ड्स और 3 प्रतिकृतियों के साथ एक इंडेक्स में प्रतिकृति समूह (प्राथमिक + 3 प्रतिकृतियां) में चार शर्ड्स हैं, इसलिए कोरम तीन तीन सक्रिय मशीनों की आवश्यकता है ।

एन शर्ड्स और 1 प्रतिकृति के साथ एक सूचकांक एक विशेष मामला है, क्योंकि आप वास्तव में केवल दो shards के साथ कोरम नहीं कर सकते हैं। केवल एक प्रतिकृति के साथ, लोचदार खोज के लिए केवल एक सक्रिय शार्ड (उदा। प्राथमिक) की आवश्यकता होती है, इसलिए quorum सेटिंग इस विशेष व्यवस्था के लिए one सेटिंग के समान है।

कुछ नोट:

  • 0,19 वास्तव में पुराना है, आप निश्चित रूप से, बिल्कुल, सकारात्मक नवीनीकृत करना चाहिए। मैं यह भी नहीं समझ सकता कि उस रिलीज के बाद से कितने बगफिक्स और प्रदर्शन सुधार जोड़े गए हैं :)

  • स्थिरता लिखें केवल गेटवे चेक है। इंडेक्सिंग अनुरोध को निष्पादित करने से पहले, नोड एक स्ट्रॉ-पोल करेगा, यह देखने के लिए कि क्या write_consistency पूरा हो गया है। यदि ऐसा है, तो यह सूचकांक निष्पादित करने और प्रतिकृति को धक्का देने का प्रयास करता है। यह गारंटी नहीं देता है कि प्रतिकृतियां सफल होंगी ... वे आसानी से असफल हो सकती हैं और आप इसे प्रतिक्रिया में देखेंगे। अगर स्थिरता सेटिंग संतुष्ट नहीं है तो यह इंडेक्सिंग प्रक्रिया को रोकने के लिए एक तंत्र है।

  • दो नोड्स के साथ "पूरी तरह से दोहराया गया" सेटअप 1 प्राथमिक शर्ड + 1 प्रतिकृति है। प्रत्येक नोड में डेटा का पूरा सेट होता है। अधिक प्रतिकृतियां रखने का कोई कारण नहीं है, क्योंकि ईएस उसी मशीन पर उसी डेटा की प्रतियां डालने से इंकार कर देता है (समझ में नहीं आता है, एचए की मदद नहीं करता है)। सूचकांक में असमर्थता सिर्फ लिखने स्थिरता का एक पक्ष प्रभाव है, लेकिन यह अपने सेटअप :)