مصفوفة الطلب × حالة المفتاح
A (حصول)
| حالة المفتاح | فعل الخادم | الاستجابة | التوقيت |
|---|---|---|---|
| غير مسجَّل | تسجيل (انتهاء = now+lease)، إصدار رمز | A+token+owner+key | فورًا |
| مسجَّل + منتهٍ | تجديد (now+lease)، رمز جديد | A+token+owner+key | فورًا |
مسجلة + holder صالح + wait=0 | لا تدخل queue | T+owner+key | فوري |
مسجلة + holder صالح + wait>0 | تدخل queue وتُعلّق الاستجابة | A أو T+owner+key | عند acquire عبر release/expiry أو T عند انتهاء wait |
| Queue أو server capacity عند الحد | لا تدخل queue | B+owner+key | فوري |
- مسار التحرير عادل بنظام FIFO: عندما يقوم الحائز بـ
R، يُسلَّم مباشرة إلى المنتظر في مقدمة الطابور (دون إعادة تنافس، برمز جديد). - مسار الانتهاء وحده غير FIFO.
- لا يحظى
ownerالمطابق للـholder الحالي بمعاملة خاصة. ليس صلاحية لإعادة active token أو تجديد lease؛ تطبق قواعد الـkey المحجوزة العادية. - قد تصل الاستجابات خارج ترتيب الطلبات؛ يطابقها العميل عبر
ownerالمعاد echo.R(تحرير)
| حالة المفتاح | فعل الخادم | الاستجابة |
|---|---|---|
| مسجَّل + تطابق الرمز، له منتظرون | تسليم مباشر للمنتظر في المقدمة (رمز جديد) | R+token+key |
| مسجَّل + تطابق الرمز، بلا منتظرين | حذف المفتاح | R+token+key |
| مسجَّل + اختلاف الرمز | لا شيء (يبقى القفل) | N+token+key |
| غير مسجَّل | لا شيء | N+token+key |
توقيت معالجة الانتهاء
- الوضع المفرد يعالج الانتهاء بكسل (lazy) — يتولى المفتاح الذي تجاوز انتهاءه أول حصول تالٍ فورًا (الصف الثاني أعلاه)، وينظف مسح دوري كل 5 ثوانٍ المفاتيح المنتهية بلا منتظرين. لذا فإن تحرير مفتاح انتهى لكن لم يُنظَّف بعد قد يُرجع
Rبدلًا منN. - في cluster mode ينتظر leader الموعد التالي في token-validating deadline min-heap ثم commit أمر
Expireبالإجماع قبل اختفاء key. هكذا لا يقسم فرق clock بين العقد حالة lock.