A · अधिग्रहण
यह lock acquire request है। lease सुरक्षा अवधि है जिससे client के बिना release मरने पर server expiry के बाद key वापस लेता है। wait सेकंड में प्रतीक्षा सीमा है; 0 queue में गए बिना एक तत्काल प्रयास करता है। अनंत प्रतीक्षा नहीं है। सफलता पर Acquired A, wait समाप्त होने पर Timeout T, और queue/server capacity भरने पर Busy B आता है।
owner — Response correlation identifier
owner एक acquire प्रयास की response ID है। Client हर call पर नया मान बनाता है और server A, T, B में वही मान echo करता है ताकि pipeline responses match हों।
owner lock authority या fencing token नहीं है। उसी key और owner को फिर भेजने से active token वापस या lease renew नहीं होता। यदि request का एक byte भी भेजा गया हो सकता है और response confirm नहीं हुआ, client उसी owner से acquire auto-resend नहीं करता; परिणाम Indeterminate है। Critical section में जाना मना है और अनदेखा grant अधिकतम lease expiry पर वापस लिया जाता है।
आधिकारिक client caller के normalized wait से पूरे operation की एक monotonic deadline केवल एक बार बनाते हैं और निश्चित unsent retry में वही deadline व owner रखते हैं। Send से ठीक पहले writer बचे समय को ऊपर round करके wire wait फिर गणना करता है, इसलिए देर से मिला connection server पर नया 255-सेकंड wait शुरू नहीं करता। पूरी deadline पार कर चुका queued request भेजा नहीं जाता; यदि वह पहले ही भेजा गया हो सकता है तो उसकी exact session बंद करके Indeterminate लौटता है। यदि deadline से ठीक पहले correlated A Ticket delivery चरण में देर से मिले तो session बंद करना आवश्यक नहीं, लेकिन exact token का compensating release schedule करके Indeterminate लौटाया जाता है। Correlated T और B क्रमशः निश्चित timeout और निश्चित busy रहते हैं।
मूल wait=0 wire पर immediate attempt ही रहता है। इसकी अलग 5-सेकंड transport deadline में client केवल request के निश्चित unsent रहने तक दूसरी connection चुनकर उसी owner से retry कर सकता है; वास्तविक server-side attempt अब भी ठीक एक है। Possible send के बाद कभी retransmit नहीं करता।
बाइट अंकन:
opएक ASCII वर्ण है,wait/leaseबाइनरी (u8, बिग-एंडियन) हैं,ownerबाइनरी (u64, बिग-एंडियन) है, औरkeyUTF-8 टेक्स्ट है (परिवर्तनशील-लंबाई, संरचना मेंNके रूप में दिखाया गया)। अनुगामी\n,0Aहै। फ़िक्स्ड हेडर एक बाइनरी मान है जिसमें0x0Aहो सकता है, इसलिए नई लाइन खोजने से पहले उसे बाइट संख्या के आधार पर खपाएँ।
प्रवाह
प्रति कुंजी-स्थिति व्यवहार के पूरे नियमों के लिए अनुरोध × कुंजी-स्थिति मैट्रिक्स देखें।