मैं 3 चरण पढ़ रहा था विकिपीडिया पर प्रोटोकॉल के लिए प्रतिबद्ध (http://en.wikipedia.org/wiki/Three-phase_commit_protocol) और यहाँ एक परिदृश्य है कि मेरे दिमाग में आया था जहां 3PC असफल हो जायेगी है:3 चरण प्रोटोकॉल प्रतिबद्ध
मान लें दो प्रतिभागियों ए और बी और एक समन्वयक सी देखते हैं:
1) सी ए को precommit संदेश भेजा है और यह संदेश precommit दोनों ए और सी बी को भेजता है इससे पहले कि simulataneously असफल। 2) लेनदेन अब पुनरारंभ किया गया है और बी इसे समाप्त कर देता है क्योंकि ए 3 से कोई जवाब नहीं है) ए लेनदेन करता है क्योंकि इसे पहले से ही प्रीकॉमिट संदेश मिला है।
क्या यह 2 पीसी में भी मूल समस्या नहीं थी जिसे 3 पीसी को संबोधित किया जाना था? समस्या को हल करने के लिए 3 पीसी कैसे है? मैं क्या खो रहा हूँ। धन्यवाद।
क्षमा करें, मैं प्रोटोकॉल के इस हिस्से पर थोड़ा अस्पष्ट हूं। प्रतिभागियों को तब तक प्रतिबद्ध नहीं करते जब तक कि वे समन्वयक से DoCommit संदेश प्राप्त नहीं करते? –
मुझे लगता है कि यह जिस तरह से होगा, यह है कि अगर समन्वयक और सभी प्रतिभागियों को सिस्टम की स्थिति जानने में विफल रहता है तो नए समन्वयक चुने जाने के बाद लेनदेन बंद हो जाता है (मुझे लगता है कि आपने जो कहा है उसके अनुसार)। और अगर समन्वयक संदेश भेजने के बाद समन्वयक विफल रहता है और कम से कम एक कण्टेंट को प्रीकॉमिट संदेश वाला होता है, तो बाकी सिस्टम सिस्टम में आगे बढ़ सकता है और प्रतिबद्ध हो सकता है क्योंकि वे पहले से ही सिस्टम पर राज्य को जानते हैं। तो किसी भी समय यह प्रणाली एक अपरिभाषित स्थिति में है –
@AbdulRahman मेरे अपडेट देखें – xvatar