2011-03-24 31 views
16

अपाचे चिड़ियाघर छोटी वस्तुओं के लिए एक प्रकार का उच्च उपलब्ध डेटा स्टोर है। एक चिड़ियाघर क्लस्टर में कुछ नोड्स होते हैं जो सभी डेटा को अपनी याद में रखते हैं। डेटासेट को "हमेशा-संगत" कहा जाता है, इसलिए प्रत्येक नोड में हर समय एक ही डेटा होता है।अपाचे चिड़ियाघर: लिखते हैं

प्रलेखन और blog posts के अनुसार, क्लस्टर में प्रत्येक नोड पढ़ता है और लिखने को स्वीकार कर सकता है।

  • पढ़ना हमेशा नोड द्वारा स्थानीय रूप से उत्तर दिया जाता है, इसलिए क्लस्टर के साथ कोई संचार शामिल नहीं होता है।
  • लेखन नामित "लीडर" नोड को अग्रेषित किए जाते हैं, जो सभी नोड्स के लिए लिखने का अनुरोध आगे बढ़ाता है और उनके उत्तरों के लिए प्रतीक्षा करता है। यदि कम से कम आधे नोड्स उत्तर देते हैं, तो लेखन सफल माना जाता है।

प्रश्न: नेता के जवाब देने के लिए आधे नोड्स का इंतजार क्यों करना पर्याप्त है? अगर कोई ऐसे नोड्स से जुड़ता है जो अद्यतन प्राप्त नहीं करता है, तो उसे पुराना परिणाम मिलता है (केवल स्थानीय मान को स्थानीय पढ़ा जाता है)।

उत्तर

17

उच्च पढ़ने-उपलब्धता प्राप्त करने के लिए, जुकीपर प्रतिकृतियों पर कमजोर स्थिरता की गारंटी देता है: एक पठन हमेशा क्लाइंट नोड द्वारा उत्तर दिया जा सकता है, और लौटाया गया जवाब एक पुराना मूल्य हो सकता है (यहां तक ​​कि एक नया संस्करण भी रहा है नेता के माध्यम से प्रतिबद्ध)।

फिर यह तय करने के लिए उपयोगकर्ताओं की ज़िम्मेदारी है कि पढ़ने के लिए जवाब "पुरानी सक्षम" है या नहीं, क्योंकि सभी एप्लिकेशन को अद्यतित जानकारी की आवश्यकता नहीं है। तो निम्नलिखित विकल्प प्रदान किए जाते हैं:

1) यदि आपके एप्लिकेशन को पढ़ने के लिए अद्यतित मूल्यों की आवश्यकता नहीं है, तो आप सीधे क्लाइंट से डेटा का अनुरोध करके उच्च पढ़ने-उपलब्धता प्राप्त कर सकते हैं।

2) यदि आपके एप्लिकेशन को पढ़ने के लिए अद्यतित मूल्यों की आवश्यकता है, तो आपको नेता के साथ क्लाइंट-साइड संस्करण को सिंक करने के आपके पढ़ने के अनुरोध से पहले "सिंक" एपीआई का उपयोग करना चाहिए।

तो एक निष्कर्ष के रूप में, जुकीपर एक अनुकूलन स्थिरता गारंटी प्रदान करता है, और उपयोगकर्ता उपलब्धता और स्थिरता के बीच संतुलन का निर्धारण कर सकते हैं।

यदि आप जुकीपर के आंतरिक के बारे में और जानना चाहते हैं, तो मैं इस पेपर की सिफारिश करता हूं: ZooKeeper: Wait-free coordination for Internet-scale systems। उपर्युक्त रणनीति धारा 4.4 में वर्णित है।

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