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 ملائے جا سکیں۔
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 پر واپس لیا جاتا ہے۔
سرکاری clients 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 پر فوری کوشش ہی رہتا ہے۔ اس کی الگ 5 سیکنڈ transport deadline میں client صرف request کے یقینی unsent رہنے تک دوسری connection منتخب کر کے اسی owner سے retry کر سکتا ہے؛ اصل server-side کوشش اب بھی ٹھیک ایک ہے۔ Possible send کے بعد کبھی retransmit نہیں کرتا۔
بائٹ نوٹیشن:
opایک ASCII حرف ہے،wait/leaseبائنری (u8، big-endian) ہیں،ownerبائنری (u64، big-endian) ہے، اورkeyUTF-8 متن ہے (متغیر لمبائی، ڈھانچے میںNکے طور پر)۔ آخری\n0Aہے۔ فکسڈ ہیڈر بائنری قدر ہے جس میں0x0Aآ سکتا ہے، اس لیے نئی لائن تلاش کرنے سے پہلے بائٹ کی تعداد کے مطابق پہلے کھپانا ہوگا۔
بہاؤ
کلید کی حالت کے مطابق مکمل رویے کے اصولوں کے لیے درخواست × کلید-حالت میٹرکس دیکھیں۔