टू-फ़ेज़ कमिट (2PC) एक वितरित एल्गोरिदम है जिसका उपयोग कंप्यूटर विज्ञान में कई डेटाबेस या संसाधनों में लेनदेन की स्थिरता सुनिश्चित करने के लिए किया जाता है। यह गारंटी देता है कि या तो सभी भाग लेने वाले नोड लेनदेन के लिए प्रतिबद्ध हैं या उनमें से कोई भी ऐसा नहीं करता है, जिससे डेटा अखंडता बनी रहती है और वितरित सिस्टम में विसंगतियों को रोका जा सकता है।
दो चरणीय प्रतिबद्धता की उत्पत्ति का इतिहास और इसका पहला उल्लेख
दो-चरण प्रतिबद्धता की अवधारणा को पहली बार ईडब्ल्यू डिज्क्स्ट्रा ने 1974 में "समवर्ती प्रोग्रामिंग नियंत्रण में एक समस्या का समाधान" शीर्षक वाले अपने पेपर में पेश किया था। बाद में, 1981 में, जिम ग्रे और एंड्रियास रॉयटर द्वारा अपने प्रभावशाली पेपर "ट्रांजेक्शन प्रोसेसिंग: कॉन्सेप्ट्स एंड टेक्निक्स" में दो-चरण प्रतिबद्ध प्रोटोकॉल का औपचारिक रूप से वर्णन किया गया था।
दो-चरण प्रतिबद्धता के बारे में विस्तृत जानकारी
दो-चरण की प्रतिबद्धता वितरित लेनदेन को प्रबंधित करने के लिए डिज़ाइन की गई है जहां कई नोड या डेटाबेस शामिल हैं। यह सुनिश्चित करना आवश्यक है कि सभी नोड्स इस बात पर सहमत हों कि लेनदेन करना है या रद्द करना है। प्रोटोकॉल दो चरणों में संचालित होता है: तैयारी चरण और प्रतिबद्ध चरण।
तैयारी के चरण में:
- समन्वयक नोड सभी भाग लेने वाले नोड्स को एक तैयार अनुरोध भेजता है।
- प्रत्येक प्रतिभागी सहमति (हाँ) या असहमति (नहीं) के साथ उत्तर देता है।
- यदि कोई भागीदार असहमत होता है, तो समन्वयक सभी नोड्स को लेनदेन निरस्त करने का निर्देश देता है।
प्रतिबद्ध चरण में:
- यदि तैयारी चरण के दौरान सभी प्रतिभागी सहमत (हाँ) करते हैं, तो समन्वयक सभी नोड्स को एक प्रतिबद्ध अनुरोध भेजता है।
- प्रतिबद्ध अनुरोध प्राप्त होने पर, प्रत्येक भागीदार आवश्यक परिवर्तनों को स्थायी बनाकर लेनदेन को अंतिम रूप देता है।
- यदि तैयारी चरण के दौरान कोई भी प्रतिभागी असहमत (NO) होता है, तो समन्वयक सभी नोड्स को एक निरस्त अनुरोध भेजता है, और लेनदेन वापस ले लिया जाता है।
दो चरण की प्रतिबद्धता की आंतरिक संरचना और यह कैसे काम करती है
दो-चरणीय प्रतिबद्धता में निम्नलिखित घटक शामिल हैं:
-
समन्वयक: लेनदेन शुरू करने और प्रबंधित करने के लिए जिम्मेदार। यह सभी भाग लेने वाले नोड्स के साथ संचार करता है और उनकी प्रतिक्रियाओं के आधार पर यह निर्धारित करता है कि लेनदेन करना है या रद्द करना है।
-
प्रतिभागियों: लेनदेन में शामिल नोड्स या डेटाबेस। वे समन्वयक के तैयार अनुरोध का जवाब सहमति या असहमति के साथ देते हैं।
-
हस्तांतरण लॉग: प्रत्येक भागीदार एक लेनदेन लॉग बनाए रखता है, जो लेनदेन के दौरान किए गए सभी परिवर्तनों को रिकॉर्ड करता है। यह लॉग यह सुनिश्चित करने में मदद करता है कि यदि आवश्यक हो तो परिवर्तनों को वापस लिया जा सकता है।
एल्गोरिथ्म इस प्रकार कार्य करता है:
-
समन्वयक सभी प्रतिभागियों को तैयारी अनुरोध भेजकर तैयारी चरण शुरू करता है।
-
प्रत्येक भागीदार इस बात पर मतदान करता है (सहमत या असहमत) कि क्या वह लेनदेन कर सकता है।
-
समन्वयक सभी वोट एकत्र करता है और निर्णय लेता है कि लेनदेन करना है या रद्द करना है।
-
प्रतिबद्ध चरण में, समन्वयक तैयारी चरण के परिणाम के आधार पर सभी प्रतिभागियों को या तो प्रतिबद्ध या निरस्त करने का अनुरोध भेजता है।
-
प्रतिभागी अंतिम निर्णय को क्रियान्वित करते हैं, या तो स्थायी रूप से परिवर्तन करते हैं या लेनदेन को वापस ले लेते हैं।
दो-चरण प्रतिबद्धता की मुख्य विशेषताओं का विश्लेषण
दो चरण की प्रतिबद्धता कई प्रमुख विशेषताएं प्रदान करती है:
-
परमाणुता: यह सुनिश्चित करता है कि आंशिक या असंगत अपडेट से बचते हुए, या तो सभी नोड्स प्रतिबद्ध हों या उनमें से कोई भी ऐसा न करे।
-
स्थिरताप्रोटोकॉल यह गारंटी देता है कि विफलताओं की उपस्थिति में भी सिस्टम सुसंगत बना रहेगा।
-
सहनशीलता: एक बार लेन-देन प्रतिबद्ध हो जाने पर, परिवर्तन स्थायी हो जाते हैं और सिस्टम विफलताओं से बचे रहते हैं।
-
प्रकृति को अवरुद्ध करना: दो-चरणीय प्रतिबद्धता में अवरुद्ध प्रकृति होती है, जिसका अर्थ है कि यह प्रतिभागियों से प्रतिक्रिया के लिए अनिश्चित काल तक प्रतीक्षा कर सकता है, जिससे संभावित देरी हो सकती है।
दो-चरण प्रतिबद्धता के प्रकार
दो-चरण प्रतिबद्ध प्रोटोकॉल की विविधताएँ हैं, जिनमें शामिल हैं:
प्रकार | विवरण |
---|---|
बुनियादी दो-चरण प्रतिबद्धता | पहले वर्णित मानक संस्करण. |
तीन चरण प्रतिबद्धता | अवरोधन संबंधी समस्याओं के समाधान के लिए एक अतिरिक्त "प्री-कमिट" चरण जोड़ता है। |
आशावादी प्रतिबद्धता | प्रतिभागियों को समन्वयक से निर्णय प्राप्त करने से पहले पूर्व-प्रतिबद्ध होने की अनुमति देता है। |
दो-चरण प्रतिबद्धता का उपयोग करने के तरीके, समस्याएं और उनके समाधान
दो-चरणीय प्रतिबद्धता विभिन्न क्षेत्रों में अनुप्रयोग ढूंढती है, जैसे:
-
डेटाबेस प्रबंधन: वितरित डेटाबेस सिस्टम में स्थिरता और अखंडता सुनिश्चित करना।
-
ई-कॉमर्स लेनदेनऑनलाइन खरीदारी के दौरान कई सर्वरों पर लेनदेन का प्रबंधन करना।
हालाँकि, प्रोटोकॉल की कुछ सीमाएँ हैं:
-
ब्लॉक कर रहा है: 2PC की अवरुद्ध प्रकृति प्रदर्शन समस्याओं को जन्म दे सकती है, विशेष रूप से बड़े पैमाने के सिस्टम में।
-
विफलता का एकल बिंदु: समन्वयक विफलता के एकल बिंदु के रूप में कार्य करता है; यदि यह क्रैश हो जाता है, तो संपूर्ण लेनदेन प्रक्रिया विफल हो सकती है।
इन समस्याओं को कम करने के लिए, कुछ समाधानों में शामिल हैं:
-
अनुकूलन: अवरुद्ध मुद्दों को कम करने के लिए अनुकूलन तकनीकों को लागू करना, जैसे उत्सुक प्रतिबद्धता या गैर-अवरुद्ध प्रतिबद्ध रणनीतियाँ।
-
समन्वयक अतिरेक: दोष सहनशीलता में सुधार के लिए फेलओवर तंत्र के साथ समन्वयक अतिरेक का परिचय।
मुख्य विशेषताएँ और समान शब्दों के साथ अन्य तुलनाएँ
विशेषता | दो-चरण प्रतिबद्धता के साथ तुलना |
---|---|
स्थिरता | वितरित प्रणालियों में स्थिरता बनाए रखने में थ्री-फेज कमिट और पैक्सोस के समान। |
प्रदर्शन | पैक्सोस और राफ्ट की तुलना में, दो चरण की प्रतिबद्धता अवरुद्ध होने के कारण उच्च विलंबता प्रदर्शित कर सकती है। |
दोष सहिष्णुता | दो-चरण कमिट और पैक्सोस दोनों दोष सहनशीलता प्रदान करते हैं, जबकि दो-चरण कमिट को लागू करना आसान है। |
संचार उपरि | राफ्ट में टू-फेज कमिट की तुलना में कम संचार ओवरहेड है, जिससे यह बड़े पैमाने की प्रणालियों के लिए अधिक उपयुक्त है। |
दो चरण की प्रतिबद्धता से संबंधित भविष्य के परिप्रेक्ष्य और प्रौद्योगिकियाँ
जैसे-जैसे वितरित प्रणालियाँ विकसित होती जा रही हैं, अधिक कुशल और दोष-सहिष्णु लेनदेन प्रोटोकॉल सामने आ सकते हैं। शोधकर्ता सीमाओं और स्केलेबिलिटी मुद्दों को संबोधित करने के लिए राफ्ट, पैक्सोस और दो-चरण प्रतिबद्धता के वेरिएंट जैसे विकल्पों की खोज कर रहे हैं। इसके अतिरिक्त, सर्वसम्मति एल्गोरिदम और मशीन लर्निंग में प्रगति से वितरित समझौते को प्राप्त करने के नए तरीके सामने आ सकते हैं।
प्रॉक्सी सर्वर का उपयोग कैसे किया जा सकता है या दो-चरण प्रतिबद्धता के साथ संबद्ध किया जा सकता है
प्रॉक्सी सर्वर क्लाइंट और सर्वर के बीच मध्यस्थ के रूप में कार्य करते हैं, क्लाइंट की ओर से अनुरोधों और प्रतिक्रियाओं को संभालते हैं। हालांकि सीधे तौर पर दो-चरण प्रतिबद्धता से जुड़े नहीं, प्रॉक्सी सर्वर कई बैकएंड सर्वरों में लेनदेन वितरित करने में महत्वपूर्ण भूमिका निभा सकते हैं।
जब क्लाइंट प्रॉक्सी सर्वर के माध्यम से वितरित लेनदेन शुरू करते हैं, तो प्रॉक्सी दो-चरण प्रतिबद्ध प्रोटोकॉल में भाग लेते हुए, समझदारी से विभिन्न बैकएंड नोड्स के लिए अनुरोधों को रूट कर सकता है। यह वितरित प्रणालियों में लोड संतुलन और बढ़ी हुई दोष सहनशीलता की अनुमति देता है। इसके अलावा, प्रॉक्सी सर्वर प्रतिक्रियाओं को कैश कर सकते हैं, बैकएंड नोड्स पर लोड को कम कर सकते हैं और समग्र सिस्टम प्रदर्शन में सुधार कर सकते हैं।
सम्बंधित लिंक्स
- वितरित लेनदेन: दो-चरण प्रतिबद्ध प्रोटोकॉल
- दो-चरण प्रतिबद्धता प्रोटोकॉल के लिए एक गाइड
- आम सहमति प्रोटोकॉल: दो-चरणीय प्रतिबद्धता बनाम पैक्सोस
- बेड़ा आम सहमति एल्गोरिदम को समझना
- पैक्सोस मेड सिंपल
अंत में, दो-चरण प्रतिबद्धता कई नोड्स में लेनदेन संबंधी स्थिरता बनाए रखने के लिए एक महत्वपूर्ण वितरित एल्गोरिदम है। इसकी अवरुद्ध प्रकृति और समन्वयक भेद्यता के बावजूद, यह विभिन्न अनुप्रयोगों में व्यापक रूप से उपयोग किया जाता है। जैसे-जैसे प्रौद्योगिकी विकसित होती है, शोधकर्ता विकल्प और अनुकूलन का पता लगाना जारी रखते हैं, और प्रॉक्सी सर्वर वितरित प्रणालियों में इसकी प्रभावशीलता को बढ़ा सकते हैं। मजबूत और विश्वसनीय वितरित अनुप्रयोगों के निर्माण के लिए दो-चरण प्रतिबद्ध प्रोटोकॉल की बारीकियों को समझना आवश्यक है।