स्वीकार किए जाते हैं जवाब के लिए एक जवाब देने के लिए, एल्गोरिथ्म ही वास्तव में जरूरत है कभी नहीं को किसी भी बहुत अच्छी तरह से परिभाषित अर्थ में समाप्त करें।एल्गोरिदम में अपनी भागीदारी को व्यक्तिगत रूप से समाप्त करने वाले प्रत्येक नोड के बारे में बात करना अधिक समझ में आता है, जो कार्यान्वयन-परिभाषित है। तो शायद आप कह सकते हैं कि एल्गोरिदम स्वयं समाप्त हो गया है जब सभी भाग लेने वाले नोड्स निकल गए हैं, अगर यह जानना उपयोगी था।
एल्गोरिथ्म प्रभावी रूप से कन्वर्ज्ड है जैसे ही स्वीकारकर्ताओं के बहुमत (भावना वहाँ क्या मूल्य अंततः फैसला किया जा सकता है के बारे में कोई विकल्प नहीं है कि एक बार हुआ है कि में) एक ही मतदान के लिए अपने AcceptPropose
संदेश भेजे हैं लेकिन इस अभ्यास की स्थिति नहीं है जिसे अभ्यास में देखा जा सकता है: उदाहरण के लिए यदि नेटवर्क AcceptPropose
संदेशों के इस सेट से पहले संदेशों को छोड़ना शुरू कर दिया गया था, तो कोई भी नोड यह जानने में सक्षम नहीं होगा कि एल्गोरिदम तब तक एकत्र हो गया जब तक कि कनेक्टिविटी को पुनर्स्थापित नहीं किया गया।
हालांकि, एक बार एक नोड जानता है कि एल्गोरिथ्म (बहुमत से AcceptPropose
संदेश प्राप्त होने से) कन्वर्ज्ड है कि यह सुरक्षित है यह परंपरागत साधन है, उदा के माध्यम से चुना मूल्य साझा करने के लिए प्रसारण या गपशप द्वारा Decide
संदेश भेजकर, और अन्य नोड्स के लिए इसे तब तक अग्रेषित करने के लिए जब तक प्रत्येक नोड जानता है कि अभिसरण हासिल नहीं किया गया था।
प्रत्येक नोड एल्गोरिदम में अपनी भागीदारी को समाप्त कर सकता है, जब यह पता चलता है कि एल्गोरिदम किस प्रकार परिवर्तित हुआ है, हालांकि यह आपके कार्यान्वयन बाधाओं के आधार पर लंबे समय तक भाग लेना पसंद कर सकता है।
आपको खुद को यह समझाने में विफलता-सहिष्णुता के बारे में कुछ सोचना होगा कि समाप्त होने पर निर्णय समाप्त हो गया है: यदि सभी नोड्स जो जानते हैं कि किस मूल्य का फैसला किया गया था, वे इसे साझा करने से पहले मरने के लिए थे, फिर भी प्रगति होगी ? जवाब सौभाग्य से है, हां: जब तक नोड्स का बहुमत जीवित रहता है, यदि उनमें से कोई भी निर्धारित मूल्य जानता है तो यह इसे दूसरों के साथ साझा कर सकता है, और यदि नहीं तो वहां भाग लेने वाले नोड्स का बहुमत है जिसे बस चुनना है एक उच्च मतपत्र संख्या और एक और दौर चलाते हैं। !
विकल्प जैसे ही बहुमत जो वे नहीं है एक को स्वीकार (एन, वी) संदेश प्राप्त किया जाता है:
एक बात स्वीकार किए जाते हैं जवाब में की सावधान रहना होगा इस वाक्यांश है अनदेखा करने का वादा किया।
सबसे पहले, वहाँ प्रोटोकॉल के बारे में AcceptPropose
संदेशों की उपेक्षा का वादा में कुछ भी नहीं है। वादे से संबंधित Propose
मैसेज को अनदेखा/अस्वीकार कर दिया जाना चाहिए। AcceptPropose
संदेशों में से अधिकांश हमेशा का उपयोग मतपत्र के बावजूद चुने गए मूल्य को जानने के लिए किया जा सकता है।
दूसरी बात, जैसे ही बहुमत AcceptPropose
संदेश भेजता है, तो विकल्प प्रभावी ढंग से बनाया जाता है। आप इसे सीधे नहीं देख सकते हैं, इसलिए आपको यह जानने से पहले कि कम से कम एक नोड को बहुमत से AcceptPropose
संदेश प्राप्त हुए हैं, तब तक प्रतीक्षा करना होगा। एक बार ऐसा होने के बाद, आप AcceptPropose
संदेशों के माध्यम से या Decided
संदेशों के प्रसारण/गपशप के माध्यम से चुने गए मूल्य को साझा कर सकते हैं, जो आपके कार्यान्वयन की बाधाओं को बेहतर बनाता है।
यह थोड़ी देर हो गया है :) मैंने वाक्यांश के कारण आपका जवाब स्वीकार कर लिया है "जैसे ही बहुमत को स्वीकार किया जाता है, वैसे ही पसंद किया जाता है! (एन, वी) संदेश जिसे उन्होंने अनदेखा करने का वादा नहीं किया है"। यह कुंजी है। पक्सोस प्रोटोकॉल जैसे ही अधिकांश स्वीकार्य मान स्वीकार करते हैं, पक्सोस प्रोटोकॉल 'पूर्ण' होता है। Commit (या Decide) बस एक अनुकूलन है जिसमें एक विशिष्ट शिक्षार्थी (यानी।प्रस्तावक) सभी इच्छुक शिक्षार्थियों के लिए सर्वसम्मति प्रसारित करता है। आप प्रत्येक स्वीकार्य को सभी शिक्षार्थियों को अपना वोट प्रसारित करके कमिट छोड़ सकते हैं। यह "पक्सोस मेड सरल" में कहा गया है, हालांकि इसे अनदेखा करना आसान है। –
@dougvk "टाइमस्टैम्प"? पैक्सोस में कोई टाइमस्टैम्प नहीं है क्या आपका मतलब मतपत्र संख्या है? – simbo1905