वितरित कंप्यूटिंग में आम सहमति समस्या इतनी महत्वपूर्ण क्यों है?


19

वितरित कंप्यूटिंग में, सर्वसम्मति की समस्या केंद्रीय विषयों में से एक लगती है जिसने गहन शोध को आकर्षित किया है। विशेष रूप से, कागज "एक दोषपूर्ण प्रक्रिया के साथ वितरित सहमति की असंभवता " को 2001 PODC प्रभावशाली पेपर पुरस्कार मिला

तो आम सहमति समस्या इतनी महत्वपूर्ण क्यों है? हम सिद्धांत और व्यवहार में आम सहमति से क्या प्राप्त कर सकते हैं?

कोई संदर्भ या एक्सपोज़िशन वास्तव में सहायक होगा।

जवाबों:


18

आपके द्वारा उल्लिखित कागज 2 कारणों से महत्वपूर्ण है:

  1. यह दर्शाता है कि कोई भी अतुल्यकालिक निर्धारक आम सहमति एल्गोरिथ्म नहीं है जो एक भी दुर्घटना दोष को सहन करता है। नोट में है कि तुल्यकालिक सेटिंग, वहाँ एक नियतात्मक एल्गोरिथ्म है कि में समाप्त दौर जब दुर्घटना संसाधित करता है।f+1f
  2. यह परिचय bivalence और univalence विन्यास (*), जिस पर बाद में कई निचले सीमा और असंभव सबूत में उपयोग किया जाता है।

अनुप्रयोग

सर्वसम्मति की समस्या का एक महत्वपूर्ण अनुप्रयोग एक समन्वयक या नेता का चुनाव है जो कुछ वैश्विक कार्रवाई शुरू करने के लिए एक दोष-सहिष्णु वातावरण में है। एक सर्वसम्मति एल्गोरिथ्म आपको अग्रिम में एक "सुपरनोड" को ठीक किए बिना (ऑन-फ्लाई) ऐसा करने की अनुमति देता है (जो विफलता का एक भी बिंदु पेश करेगा)।

एक अन्य एप्लिकेशन वितरित नेटवर्क में स्थिरता बनाए रख रहा है: मान लीजिए कि आपके पास एक ही वातावरण की निगरानी करने वाले अलग-अलग सेंसर नोड हैं। इस मामले में जहां इनमें से कुछ सेंसर नोड दुर्घटनाग्रस्त हो जाते हैं (या हार्डवेयर दोष के कारण दूषित डेटा भेजना शुरू करते हैं), एक आम सहमति प्रोटोकॉल ऐसे दोषों के खिलाफ मजबूती सुनिश्चित करता है।


(*) एक वितरित एल्गोरिथ्म का एक रन विन्यास का एक क्रम है। एक कॉन्फ़िगरेशन प्रक्रियाओं के स्थानीय राज्यों का एक वेक्टर है। प्रत्येक प्रक्रिया एक नियतात्मक राज्य मशीन को निष्पादित करती है। किसी भी सही सर्वसम्मति एल्गोरिथ्म को अंततः एक कॉन्फ़िगरेशन तक पहुंचना होगा जहां हर प्रक्रिया ने एक ही इनपुट मूल्य पर (अपरिवर्तनीय रूप से) निर्णय लिया है। एक विन्यास है 1 - वैलेंट हैं, कोई बात नहीं क्या विरोधी करता है, के सभी संभव एक्सटेंशन सी के एक निर्णय मूल्य के लिए नेतृत्व 1 । सामान्य तौर पर, हम 0 - वैधता को परिभाषित कर सकते हैं । एक विन्यास सी है द्विसंयोजक अगर दोनों फैसलों से पहुंचा जा सकता है सीC1C10CC(जो दोनों में से किसी एक पर पहुँच जाता है, वह प्रतिकूल पर निर्भर करता है)। स्पष्ट रूप से, कोई भी प्रक्रिया एक द्विसंयोजक विन्यास में निर्णय नहीं ले सकती है , अन्यथा हमें समझौते के लिए विरोधाभास मिलता है! इसलिए यदि हम इस तरह के द्विभाषी विन्यास के अनंत अनुक्रम का निर्माण कर सकते हैं, तो हमने दिखाया है कि इस सेटिंग में कोई सर्वसम्मति एल्गोरिथ्म नहीं है।C


2
@AJed एक पूरक के रूप में: मैंने मौरिस हेरालि द्वारा पेपर सिंक्रोनाइज़ेशन पर नज़र रखी है और अब सर्वसम्मति की समस्या का एक अतिरिक्त महान सैद्धांतिक निहितार्थ प्रस्तुत कर सकता है। सर्वसम्मति संख्या के विचार का उपयोग करते हुए , कोई यह दिखा सकता है कि तुल्यकालन आदिमों की एक अनंत पदानुक्रम है, जैसे कि किसी भी स्तर पर किसी भी आदिम का उपयोग उच्च स्तर पर किसी भी आदिम की प्रतीक्षा-मुक्त कार्यान्वयन के लिए नहीं किया जा सकता है। सीधे शब्दों में कहें, सर्वसम्मति की समस्या आदिम तुल्यकालन संचालन की सापेक्ष शक्ति को परिभाषित करने पर एक एकीकृत सिद्धांत के रूप में है । यह सुरुचिपूर्ण है।
hengxin

1
मुझे एफएलपी असंभव परिणाम के प्रमाण को समझने में कुछ कठिनाई है। क्या आप मुझे कुछ संकेत दे सकते हैं? कृपया [FLP प्रमाण] ( stackoverflow.com/q/15131730/1833118 ) देखें। धन्यवाद।
hengxin

"जहां हर प्रक्रिया का फैसला किया है" शायद होना चाहिए "जहां हर सही प्रक्रिया का फैसला किया है"?
nbro

आपको यह समझाना चाहिए कि विरोधी कौन है "इससे कोई फर्क नहीं पड़ता कि विरोधी क्या करता है"।
nbro

"सी के सभी संभावित विस्तार", "सी के विस्तार" से आपका क्या मतलब है? सामान्य रूप में एक कॉन्फ़िगरेशन का विस्तार क्या है?
nbro

7

यह दर्शाता है कि कोई भी दोष-सहिष्णु निर्धारक एल्गोरिथम नहीं हैं। काफी मजबूत सैद्धांतिक परिणाम, जो डिजाइनरों को दोष-सहिष्णुता से अलग तरीके से निपटने के लिए मजबूर करता है, जिनमें से कुछ सिंक्रनाइज़ेशन और यादृच्छिककरण हैं।

टिप्पणी: मेरी राय में, सिंक्रनाइज़ेशन सिस्टम की एक अतिरिक्त धारणा है जो व्यावहारिक अनुप्रयोगों में मुश्किल से पाई जाती है।

संदर्भ के लिए, विकिपीडिया लिंक की जाँच करें । व्यावहारिक अनुप्रयोगों के लिए भी इस ब्लॉग की जाँच करें


1
हां, मैं सिंक्रनाइज़ेशन के लिए यादृच्छिककरण पसंद करता हूं। जिस वातावरण में कंप्यूटिंग नाटकों का वितरण किया गया है, वह अतुल्यकालिकता, अबाधित देरी, अप्रत्याशित विफलता और बहुत अधिक गैर-नियतात्मक के अर्थ में बहुत खराब है। जब तक यह सही नहीं है, हम यादृच्छिकता का उपयोग क्यों नहीं करते हैं, बहुत अधिक जटिलता से बचने के दौरान कुछ गारंटी प्राप्त करते हैं।
1

1
सिंक्रोनाइज़ेशन की बात करें तो मुझे सिर्फ़ सिद्धांत में धारणा पसंद नहीं है । हालांकि, उद्योग में , तुल्यकालन या आंशिक तुल्यकालन अक्सर लागू किया जाता है। उदाहरण के लिए, Google का स्पैनर एक विश्व स्तर पर वितरित सिंक्रोनस-प्रतिकृति डेटाबेस है। यह मुझे कम निर्णायक बनाता है। आपकी क्या राय है?
hengxin

मुझे लगता है कि यह देखना बेहतर है कि कैसे सिंक्रोनाइज़ेशन लागू किया जाता है। लेकिन यह एक बहुत ही दिलचस्प संदर्भ है। - मेरा क्या मतलब है, यह सिस्टम की एक स्वाभाविक विशेषता नहीं है। इसे इसमें जोड़ना होगा।
एजे डिड

सामान्य तौर पर, आपको संदर्भ विकिपीडिया के रूप में नहीं देना चाहिए। मैंने अभी पढ़ा है कि विकिपीडिया लेख: यह काफी अधूरा और असंगठित है; यह भी भ्रामक हो सकता है।
नबंर

5

सर्वसम्मति की समस्याओं का एक कारण यह है कि वे बहुत सरल हैं और वे वितरित कंप्यूटिंग प्रणालियों के लिए सार्वभौमिक समस्याएं हैं।

यदि हम एक असिस्टेंट डिस्ट्रिब्यूटेड सिस्टम में सर्वसम्मति से हल कर सकते हैं तो हम इसे साझा ऑब्जेक्ट्स पर कार्रवाई को रैखिक बनाने और साझा ऑब्जेक्ट्स के लिए रैखिककरण को प्राप्त करने के लिए उपयोग कर सकते हैं।

सादगी के लिए, आप कितनी समस्याओं के बारे में सोच सकते हैं जो एक मूल्य पर सहमत होने की तुलना में सरल हैं?

(शुद्ध) async वितरित सिस्टम में आम सहमति के बारे में असंभवता परिणाम हमें बताती है कि हम उन समस्याओं को हल नहीं कर सकते जिन्हें हम (शुद्ध) async वितरित सिस्टम में कुछ अतिरिक्त "सामान" के बिना हल करना चाहते हैं। यह एस्किंस मॉडल की ओर ले जाता है जहां हम सर्वसम्मति से हल कर सकते हैं, जैसे कि यादृच्छिक एल्गोरिदम, गलती डिटेक्टर, आंशिक तुल्यकालिक मॉडल, आदि।

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


0

मैं केवल यह जोड़ना चाहूंगा कि संगणना की प्रकृति तेजी से स्टैक के पार वितरित की जा रही है: कई सीपीयू, एक मशीन पर कई प्रक्रियाएं, कई मशीनें LAN से जुड़ी, कई LAN इंटर्नेट द्वारा कनेक्टेड।

यह आम (वितरित / वैश्विक) राज्य की समस्या को सर्वोपरि बनाता है - प्रत्येक एल्गोरिथ्म कुछ राज्य को मानता है और यदि गणना एक से अधिक स्थानों पर की जानी है, तो राज्य को भी वितरित किया जाना है।

इस डोमेन में प्रभावशाली कागजात ( Paxos , और अधिक हाल ही में बेतरतीब ) प्रकाशित किए गए पेपर के बाद प्रकाशित किए गए थे। दोनों कुछ विफलताओं की उपस्थिति में आम सहमति के मुद्दों को संबोधित करते हैं।

कुछ तरीकों का उपयोग करके वितरित प्रणालियों में बीजान्टिन त्रुटियों से बचा जा सकता है।

बीजान्टिन दोष सहिष्णुता पर विकिपीडिया प्रविष्टि पर एक नजर है ।


सबसे बुनियादी विफलता (दुर्घटना) की सेटिंग में भी एफएलपी असंभवता लागू होती है, इसलिए मुझे यकीन नहीं है कि बीजान्टिन विफलताओं से बचने के बारे में पैराग्राफ का क्या मतलब है। ध्यान दें कि यदि हमारे पास विफलताएं नहीं हैं, तो आम सहमति आसान है: एक निश्चित प्रक्रिया अपने मूल्य को प्रसारित करती है और प्रत्येक प्रक्रिया प्राप्त होते ही उस मूल्य को तय करती है।
केवह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.