अंतिम पेड़ों को अंततः संगति में उपयोग के लिए समझाइए


79

मर्कल ट्री का उपयोग कई वितरित, प्रतिकृति कुंजी / मूल्य भंडारों में एक एंटी-एंट्रोपी तंत्र के रूप में किया जाता है:

कोई शक नहीं कि एक एंटी-एन्ट्रापी मैकेनिज्म ए गुड थिंग है - क्षणिक विफलताएं सिर्फ उत्पादन में होती हैं। मुझे यकीन नहीं है कि मैं समझता हूं कि मर्कल ट्रीज लोकप्रिय दृष्टिकोण क्यों है ।

  • एक पूर्ण मर्कल वृक्ष को एक सहकर्मी के पास भेजने के लिए उस कुंजी को स्थानीय कुंजी-स्थान भेजना शामिल है, प्रत्येक कुंजी मूल्य के हैश के साथ, पेड़ के निम्नतम स्तरों में संग्रहीत होता है।

  • किसी सहकर्मी से भेजे गए मर्कल ट्री को डिफ्यूज करने के लिए अपने खुद के मर्कल ट्री की आवश्यकता होती है।

चूँकि दोनों साथियों के हाथ में पहले से ही एक छँटाई हुई चाबी / मूल्य-हैश स्थान होना चाहिए, इसलिए विसंगतियों का पता लगाने के लिए एक रैखिक मर्ज क्यों नहीं किया जाता है?

मुझे विश्वास नहीं हो रहा है कि वृक्ष की संरचना किसी भी प्रकार की बचत प्रदान करती है जब आप रखरखाव लागत में कारक होते हैं, और तथ्य यह है कि पेड़ के पत्तों पर रैखिक पास पहले से ही किया जा रहा है ताकि तार पर प्रतिनिधित्व को अनुक्रमित किया जा सके

इसे बाहर निकालने के लिए, एक पुआल-मैन विकल्प के पास हैश डिजेस्ट के नोड्स एक्सचेंज एरेस हो सकते हैं, जो कि मॉडुलो रिंग-पोजीशन द्वारा वृद्ध रूप से अपडेट और बकेट किए गए हैं।

मैं क्या खो रहा हूँ?


2
मर्कल के पेड़ अब विकिपीडिया पर अपना विषय रखते हैं: en.wikipedia.org/wiki/Merkle_tree
ट्रेंटन

जवाबों:


88

मर्कल ट्री सिंक्रोनाइज़ करते समय स्थानांतरित किए गए डेटा की मात्रा को सीमित करता है। सामान्य धारणाएं हैं:

  1. नेटवर्क I / O स्थानीय I / O + से अधिक महंगी हैश की गणना करता है।
  2. संपूर्ण सॉर्ट किए गए कुंजी स्थान को स्थानांतरित करना कई चरणों की तुलना में उत्तरोत्तर सीमित करने की तुलना में अधिक महंगा है।
  3. प्रमुख स्थानों में समानता की तुलना में कम विसंगतियां हैं।

एक मर्कल ट्री एक्सचेंज इस तरह दिखेगा:

  1. पेड़ की जड़ (एक हैश मूल्य की एक सूची) से शुरू करें।
  2. मूल वर्तमान स्तर पर हैश की सूची भेजता है।
  3. गंतव्य अपने स्वयं के विरुद्ध हैश की सूची को अलग करता है और फिर अलग-अलग होने वाले अनुरोधों को अलग करता है। यदि कोई मतभेद नहीं हैं, तो अनुरोध समाप्त हो सकता है।
  4. पत्ती नोड्स तक पहुंचने तक चरण 2 और 3 दोहराएं।
  5. मूल परिणामी सेट में कुंजियों के मूल्यों को भेजता है।

सामान्य स्थिति में, कुंजी रिक्त स्थान को सिंक्रनाइज़ करने की जटिलता लॉग (एन) होगी। हां, चरम पर, जहां आम तौर पर कोई चाबी नहीं होती है, ऑपरेशन हैश की पूरी छँटाई सूची, ओ (एन) को भेजने के बराबर होगा। जैसा कि वे लिखते हैं और डिस्क पर क्रमबद्ध रूप रखते हुए गतिशील रूप से निर्माण करके मर्कल पेड़ों के निर्माण के खर्च को बढ़ा सकते हैं।

मैं यह नहीं बोल सकता कि डायनमो या कैसेंड्रा मर्कल पेड़ों का उपयोग कैसे करते हैं, लेकिन रिआक ने उन्हें इंट्रा-क्लस्टर सिंक्रोनाइज़ेशन (हिंटेड हैंडऑफ़ और रीड-रिपेयर ज्यादातर मामलों में पर्याप्त हैं) का उपयोग करना बंद कर दिया। हमारे पास बाद में उन्हें जोड़ने की योजना है क्योंकि कुछ आंतरिक वास्तुशिल्प बिट्स बदल गए हैं।

Riak के बारे में अधिक जानकारी के लिए, हम आपको मेलिंग सूची में शामिल होने के लिए प्रोत्साहित करते हैं: http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com


1
आह, आगे-पीछे का आदान-प्रदान मुझे याद आ रहा था। धन्यवाद।
जॉनी ग्राटिंगिंगर

4
उन्हें Riak 1.3 के AAE कार्यान्वयन में फिर से पेश किया गया है।
कोडरोशी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.