वर्तमान में परीक्षण चल रहा है: पूरा होने पर GitHub कोड खोला जाएगा।

M · स्थानांतरित

संरचनाrefresh

क्लाइंट को बताता है कि यह नोड लीडर नहीं है, इसलिए इसके बजाय लीडर के पास जाएँ (केवल क्लस्टर में)। बॉडी लीडर का क्लाइंट पता (host:port) टेक्स्ट के रूप में होती है — वह पता जिससे क्लाइंट स्वयं जुड़ता है, न कि Raft पोर्ट।

आधिकारिक क्लाइंट पते को leader hint तभी याद रखते हैं जब वह पहले से दर्ज allowlist पते से ठीक मेल खाए, और फिर उस session को बंद करते हैं। जिस acquire का एक byte भी भेजा गया हो सकता है उसे M से मनमाने ढंग से नहीं मिलाते और न auto-resend करते हैं; उसका परिणाम Indeterminate है। बाद के स्वतंत्र request और writer द्वारा अभी न लिए गए unsent request नया leader connection उपयोग करते हैं। यदि अभी तक कोई लीडर नहीं चुना गया है और इशारा करने के लिए कोई पता नहीं है, तो इसके बजाय E no_leader भेजा जाता है।

पूरे क्लस्टर व्यवहार के लिए प्रोटोकॉल (क्लस्टर) देखें।

बाइट अंकन: op एक ASCII वर्ण है, और addr UTF-8 टेक्स्ट है (परिवर्तनशील-लंबाई, संरचना में N के रूप में दिखाया गया)। अनुगामी \n, 0A है।

प्रवाह

क्लाइंट
फॉलोवर
लीडर
A · अधिग्रहण (key)
M · स्थानांतरित (लीडर का पता)
पुरानी session बंद · भेजा acquire = Indeterminate
अगला स्वतंत्र acquire leader पर शुरू
अनुरोधप्रतिक्रिया

M में owner और key नहीं होते, और एक session में कई acquire मिल सकते हैं। leader→follower परिवर्तन पर commit हो रहे request और follower द्वारा अस्वीकृत request साथ हो सकते हैं; इसलिए एक M किसी pending के निश्चित non-acquisition का प्रमाण नहीं है। यह conservative rule duplicate acquire और same-owner lease extension रोकता है।