درخواست × کلید-حالت میٹرکس
A (حصول)
| کلید کی حالت | سرور کا عمل | جواب | وقت |
|---|---|---|---|
| رجسٹر نہیں | رجسٹر کریں (میعاد = now+lease)، ٹوکن جاری کریں | A+token+owner+key | فوراً |
| رجسٹر شدہ + میعاد گزری | تجدید (now+lease)، نیا ٹوکن | A+token+owner+key | فوراً |
Registered + valid holder + wait=0 | Queue میں نہ ڈالیں | T+owner+key | فوراً |
Registered + valid holder + wait>0 | Queue میں ڈالیں، response روکیں | A یا T+owner+key | release/expiry سے acquire، یا wait ختم پر T |
| Queue یا server capacity حد پر | Queue میں نہ ڈالیں | B+owner+key | فوراً |
- اجراء کا راستہ FIFO-منصفانہ ہے: جب حاصل کنندہ
Rکرتا ہے، تو یہ براہ راست قطار کے سب سے آگے والے منتظر کو منتقل ہو جاتا ہے (کوئی دوبارہ مقابلہ نہیں، ایک نیا ٹوکن)۔ - صرف میعاد ختم ہونے کا راستہ غیر-FIFO ہے۔
- Current holder کے برابر
ownerکو خاص برتاؤ نہیں ملتا۔ یہ active token واپس یا lease renew کرنے کا اختیار نہیں؛ عام held-key اصول لاگو ہیں۔ - Responses request ترتیب سے باہر آ سکتے ہیں؛ client echoed
ownerسے match کرتا ہے۔R(اجراء)
| کلید کی حالت | سرور کا عمل | جواب |
|---|---|---|
| رجسٹر شدہ + ٹوکن مطابق، منتظر موجود | سب سے آگے والے منتظر کو براہ راست منتقل کریں (نیا ٹوکن) | R+token+key |
| رجسٹر شدہ + ٹوکن مطابق، کوئی منتظر نہیں | کلید حذف کریں | R+token+key |
| رجسٹر شدہ + ٹوکن غیر مطابق | کچھ نہیں (لاک برقرار) | N+token+key |
| رجسٹر نہیں | کچھ نہیں | N+token+key |
میعاد ختم ہونے کی پروسیسنگ کا وقت
- سنگل موڈ میعاد ختم ہونے کو lazy طریقے سے پروسیس کرتا ہے — میعاد گزر چکی کلید کو اگلا حصول اسی لمحے سنبھال لیتا ہے (اوپر دوسری قطار)، اور ایک الگ 5 سیکنڈ کا جھاڑو (sweep) بغیر منتظر والی میعاد ختم شدہ کلیدوں کو صاف کرتا ہے۔ اس لیے میعاد ختم ہو چکی لیکن ابھی صاف نہ ہوئی کلید کا اجراء
Nکی بجائےRدے سکتا ہے۔ - Cluster mode میں leader token-validating deadline min-heap کی اگلی deadline تک انتظار کرتا اور key ہٹنے سے پہلے consensus سے
Expirecommand commit کرتا ہے۔ اس طرح node clock فرق lock state تقسیم نہیں کرتا۔