2010-01-04 9 views
18

मैंने पैक्सोस पर लैमपोर्ट के paper पढ़ा है। मैंने यह भी सुना है कि प्रदर्शन के कारणों के लिए अभ्यास में इसका अधिक उपयोग नहीं किया जाता है। वितरित सिस्टम में आम सहमति के लिए आमतौर पर क्या एल्गोरिदम का उपयोग किया जाता है?वितरित सिस्टम में सर्वसम्मति के लिए तेजी से पैक्सोस से संबंधित एल्गोरिदम क्या हैं?

+2

पैक्सोस का उपयोग माइक्रोसॉफ्ट और Google पर बहुत (बहुत) बड़ी सेवाओं द्वारा किया जाता है ... –

+1

हां, लेकिन मुझे बेचा जाता है कि ये मूल पैक्सो नहीं हैं जिन्हें हमने स्कूल में सीखा, लेकिन वेरिएंट। मैं उत्सुक हूं कि पैक्सोस के वास्तव में किस प्रकार के उपयोग में हैं। –

+1

Google ने अपने पैक्सोस कार्यान्वयन के बारे में एक पेपर प्रकाशित किया: http://labs.google.com/papers/paxos_made_live.pdf, माइक्रोसॉफ्ट रिसर्च (लेस्ली लैमपोर्ट, पैक्सोस आविष्कारक) की एक छोटी सी जानकारी भी है: http://research.microsoft।com/en-us/प्रयोगशालाओं/siliconvalley/समूहों/distsys.aspx। मुझे लगता है कि आप वास्तविक उत्पादन संस्करणों को मानक पैक्सोस के करीब पाएंगे। –

उत्तर

4

अगर यह उपयोगी है (के बाद से इस वास्तविक उत्पादन जानकारी नहीं है), लेकिन हमारे "वितरण प्रणाली" में बेशक हम अध्ययन किया, Paxos के साथ सुनिश्चित नहीं हैं, चंद्र-Toueg और Mostefaoui-RAYNAL एल्गोरिदम (बाद में हमारे प्रोफेसर विशेष रूप से शौकीन थे)।

+0

+1 धन्यवाद, वे कुछ अच्छे पॉइंटर्स हैं। –

+0

मिला [यह पेपर] (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.9126) कह रहा है कि चंद्र-टौग लगभग समान दक्षता है क्योंकि पैक्सोस – Dan

+0

एक और [रोचक पढ़ा] http://ddg.jaist.ac.jp/pub/US04b.pdf) संक्षेप में बताता है कि कुछ मामलों में मोस्टिफाउ-रेनल स्केल बहुत खराब है (ऐसे मामलों सहित जहां प्रसारण संदेशों को कई पॉइंट-टू-पॉइंट संदेशों के रूप में अनुकरण किया जाना चाहिए, जैसा कि अधिकांश में कंप्यूटर नेटवर्क)। हालांकि, यह संचार आर्किटेक्चर के लिए विफलताओं पर प्रतिक्रिया दे सकता है जहां वास्तविक प्रसारण संदेश उपलब्ध हैं। इसके अलावा, 3 या कम नोड्स के लिए, इसमें एक कम संचार कदम है, इसलिए उस स्थिति में यह संचार वास्तुकला के बावजूद चंद्र-तोउगे से बेहतर प्रदर्शन करेगा। – Dan

2

यदि प्रदर्शन एक मुद्दा है, तो इस बात पर विचार करें कि आपको सभी मजबूत स्थिरता गारंटी की आवश्यकता है या नहीं, आपको पैक्सोस देता है। उदाहरण देखें http://queue.acm.org/detail.cfm?id=1466448 और http://incubator.apache.org/cassandra/। ऑप्टिमाइज़ किए गए पैक्सोस पर खोजना मुझे हिट करता है, लेकिन मुझे संदेह है कि कुछ आवश्यकताओं को आराम से आपको प्रोटोकॉल को ट्यून करने से अधिक खरीदना होगा।

+0

मुझे पूरे आधार दृष्टिकोण से अवगत है, लेकिन ऐसी स्थितियां हैं जिनके लिए एसीआईडी ​​गारंटी की आवश्यकता होती है, और उन परिस्थितियों के लिए हमें पैक्सोस की तरह कुछ चाहिए। लेकिन आप सही हैं, सख्त स्थिरता सब कुछ के लिए सही नहीं है। –

1

आपको अपाचे जुकीपर परियोजना की जांच करनी चाहिए। इसका उपयोग याहू द्वारा उत्पादन में किया जाता है! और दूसरों के बीच फेसबुक।

http://hadoop.apache.org/zookeeper/

आप शैक्षिक पेपर यह वर्णन करने के लिए लग रही है, यह USENIX ATC'10 पर एक पत्र में वर्णित है। सर्वसम्मति प्रोटोकॉल (पैक्सोस का एक संस्करण) डीएसएन'11 में एक पेपर में वर्णित है।

1

Google ने दस्तावेज किया कि उन्होंने अपने मेगास्टोर के लिए निम्न पेपर में तेजी से पैक्सो कैसे किया: Link

2

पैक्सोस सिस्टम जो मैं चलाता हूं (वास्तव में, वास्तव में बड़ी वेबसाइट्स का समर्थन करता है) बेसिक-पैक्सोस मल्टी-पैक्सोस के बीच आधे रास्ते में है। मैं इसे एक पूर्ण मल्टी-पैक्सो कार्यान्वयन पर ले जाने की योजना बना रहा हूं।

पैक्सोस उच्च-थ्रूपुट डेटा स्टोरेज सिस्टम के रूप में इतना अच्छा नहीं है, लेकिन यह नेता चुनाव प्रदान करके उन प्रणालियों का समर्थन करने में उत्कृष्टता प्राप्त करता है। उदाहरण के लिए, कहें कि आपके पास एक प्रतिकृति डेटा स्टोर है जहां आप प्रदर्शन कारणों के लिए एक मास्टर चाहते हैं। आपके डेटा स्टोर नोड्स मास्टर चुनने के लिए पैक्सोस सिस्टम का उपयोग करेंगे।

Google चबबी की तरह, मेरा सिस्टम एक सेवा के रूप में चलाया जाता है और डेटा को विन्यास कंटेनर के रूप में भी स्टोर कर सकता है। (मैं विन्यास को कम से कम उपयोग करता हूं; मैंने सुना है कि Google डब्लूबीएस के लिए चुबबी का उपयोग करता है।) यह डेटा उपयोगकर्ता इनपुट के रूप में अक्सर नहीं बदलता है, इसलिए इसे उच्च थ्रुपुट लिखने की आवश्यकता नहीं है। दूसरी ओर, पढ़ना बेहद तेज़ है क्योंकि यह पूरी तरह से दोहराया गया है और आप किसी भी नोड से पढ़ सकते हैं।

अद्यतन

इस लेखन के बाद से, मैं अपने Paxos सिस्टम को अपग्रेड किया है। अब मैं प्राथमिक सर्वसम्मति प्रणाली के रूप में एक श्रृंखला-सर्वसम्मति प्रोटोकॉल का उपयोग कर रहा हूं। चेन सिस्टम अभी भी चेन नोड्स को सूचित करते समय चेन नोड्स को सूचित करते हुए री-कॉन्फ़िगरेशन — के लिए बेसिक-पैक्सोस का उपयोग करता है।

+0

क्या आपके पास एक लिंक है जो श्रृंखला-सर्वसम्मति प्रोटोकॉल का वर्णन करता है? – simbo1905

+0

@ simbo1905 अफसोस की बात है, मैं अभी भी कागज प्रकाशित करने के लिए कानूनी अनुमोदन की प्रतीक्षा कर रहा हूं - हालांकि हमने इसे सहकर्मी की समीक्षा की है। इस बीच आप लैमपोर्ट द्वारा रॉबर्ट वैन रेनीसे और वर्टिकल पैक्सोस द्वारा [चेन प्रतिकृति] (http://static.usenix.org/legacy/events/osdi04/tech/full_papers/renesse/renesse.pdf) देख सकते हैं। –

2

एक सर्वसम्मति एल्गोरिदम के लिए राफ्ट एल्गोरिदम देखें जो कार्यान्वयन की समझ और स्पष्टता की आसानी के लिए अनुकूलित है। ओह ... यह भी बहुत तेज़ है।

https://ramcloud.stanford.edu/wiki/display/logcabin/LogCabin

https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf

0
मल्टी Paxos साथ

जब नेता जब यह सुना है कि नोड्स के बहुमत डिस्क के लिए मूल्य लिखा है यह ग्राहक लिखने का जवाब दे सकते सरपट है।यह उतना ही अच्छा और कुशल है जितना आप पक्सोस की स्थिरता गारंटी को बनाए रखने के लिए प्राप्त कर सकते हैं।

आम तौर पर लोग महत्वपूर्ण जानकारी को रखने के लिए एक बाहरी सेवा (समर्पित क्लस्टर) के रूप में ज़ूकीपर जैसे कुछ पैक्सो-जैसे उपयोग करते हैं (जो क्लॉक में कौन है, नेता कौन है, क्लस्टर में कॉन्फ़िगरेशन क्या है) फिर कम स्थिरता गारंटी के साथ एक कम सख्त एल्गोरिदम चलाएं जो अनुप्रयोग विनिर्देशों (जैसे वेक्टर घड़ियों और विलय भाई बहनों) पर निर्भर करता है। विकल्पों की एक अच्छी अवलोकन के रूप में लघु ईबुक distributed systems for fun and profit

ध्यान दें कि बहुत से डेटाबेस खतरनाक डिफ़ॉल्ट का उपयोग करके गति पर प्रतिस्पर्धा करते हैं जो स्थिरता का जोखिम रखते हैं और नेटवर्क विभाजन के तहत डेटा खो सकते हैं। Aphry blog series on Jepson दिखाता है कि क्या अच्छी तरह से opensouce सिस्टम ढीला डेटा पता है। कोई सीएपी प्रमेय धोखा नहीं दे सकता; यदि आप सुरक्षा के लिए सिस्टम कॉन्फ़िगर करते हैं तो वे उसी मैसेजिंग के बारे में सोचते हैं और उसी डिस्क को पैक्सोस के रूप में लिखते हैं। तो वास्तव में आप यह नहीं कह सकते कि पैक्सो धीमा है, आपको "एक सिस्टम का एक हिस्सा है जिसे नेटवर्क विभाजन के तहत स्थिरता की आवश्यकता होती है, प्रति ऑपरेशन की न्यूनतम संख्या और डिस्क फ्लश प्रति ऑपरेशन की आवश्यकता होती है और यह धीमा है"।

0

Paxos (जो अक्सर हावी कारक है) आम सहमति प्रोटोकॉल, कम से कम नेटवर्क देरी की संख्या के मामले में के प्रदर्शन के मामले में इष्टतम है। यह स्पष्ट रूप से संभव नहीं है मज़बूती से आम सहमति प्राप्त करने के लिए, जबकि एक भी राउंड ट्रिप संचार के बिना च विफलताओं अप करने के लिए बर्दाश्त करने के लिए कम से कम (च -1) एक ग्राहक के अनुरोध और इसी पुष्टि के बीच में अन्य नोड, और Paxos इस कम को प्राप्त होता है बाध्य। यह कार्यान्वयन के बावजूद आम सहमति-आधारित प्रोटोकॉल के प्रत्येक अनुरोध की विलंबता पर कठोर बाध्यता देता है। विशेष रूप से, राफ्ट, ज़ाब, व्यूस्टैम्पड प्रतिकृति और आम सहमति प्रोटोकॉल पर अन्य सभी प्रकारों में सभी का प्रदर्शन समान बाधा है।

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

जब आप सुना है कि Paxos शायद ही कभी अपने खराब प्रदर्शन के कारण प्रयोग किया जाता है, यह अक्सर मतलब है कि आम सहमति ही शायद ही कभी खराब प्रदर्शन के कारण प्रयोग किया जाता है, और यह एक निष्पक्ष आलोचना है: क्या यह संभव है बहुत अधिक प्रदर्शन प्राप्त करने के लिए यदि आप जितना संभव हो सके नोड्स के बीच आम सहमति-आधारित समन्वय की आवश्यकता से बच सकते हैं, क्योंकि यह क्षैतिज स्केलेबिलिटी के लिए अनुमति देता है।

Snarkily, यह भी का दावा एक उचित आम सहमति प्रोटोकॉल का उपयोग किया जाना है, लेकिन वास्तव में कुछ है कि कुछ मामलों में विफल रहता है ऐसा करके अपना प्रदर्शन सुधार संभव है। Aphyr's blog इन असफलताओं के उदाहरणों से भरे हुए हैं, जितना संभव हो उतना दुर्लभ नहीं है, जहां डेटाबेस कार्यान्वयन ने या तो "अनुकूलन" के माध्यम से अच्छी आम सहमति-जैसे प्रोटोकॉल में बग पेश किए हैं, या फिर कस्टम सर्वसम्मति-जैसे प्रोटोकॉल विकसित किए गए हैं जो पूरी तरह से विफल होने में विफल रहते हैं कुछ सूक्ष्म फैशन में सही है। यह सामान कठिन है।

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