فی الحال ٹیسٹنگ جاری ہے: مکمل ہونے پر GitHub کوڈ کھول دیا جائے گا۔

R · اجراء

ساختrefresh

ایک لاک اجراء کی درخواست۔ token وہ فینسنگ ٹوکن ہے جو اس حصول کو ملا تھا، اور اجراء صرف اسی صورت ہوتا ہے جب یہ موجودہ حاصل شدہ ٹوکن سے مطابقت رکھے۔ جواب جاری کر دیا گیا R یا موجود نہیں N ہوتا ہے۔

token — کسی اور کا لاک نہ کھولنے کا انتظام

ٹوکن کی جانچ نہ ہو تو ایک خطرناک ترتیب بن جاتی ہے۔ جب اجراء کی درخواست failover کے پار دوبارہ کوشش کر رہی ہوتی ہے، اسی دوران اصل لاک lease ختم ہونے پر واپس لے کر کسی دوسرے کلائنٹ کو دے دیا جائے، تو دیر سے پہنچنے والا اجراء اس نئے حاصل کنندہ کا لاک کھول دیتا ہے۔ چونکہ اجراء صرف ٹوکن ملنے پر ہوتا ہے، یہ راستہ بند ہو جاتا ہے۔

ٹوکن مختلف ہو تو N (موجود نہیں) آتا ہے اور لاک جوں کا توں رہتا ہے۔ اجراء کی دوبارہ کوشش ہمیشہ اسی ٹوکن کے ساتھ بھیجنی چاہیے، اور جواب کی مطابقت بھی echo شدہ token سے ہوتی ہے (جواب ملانے کے اصول

بائٹ نوٹیشن: op ایک ASCII حرف ہے، token بائنری (u64، big-endian) ہے، اور key UTF-8 متن ہے (متغیر لمبائی، ڈھانچے میں N کے طور پر)۔ آخری \n 0A ہے۔ فکسڈ ہیڈر بائنری قدر ہے جس میں 0x0A آ سکتا ہے، اس لیے نئی لائن تلاش کرنے سے پہلے بائٹ کی تعداد کے مطابق پہلے کھپانا ہوگا۔

بہاؤ

حاصل کنندہ X
سرور
منتظر Y
R · اجراء (key · token)
R · جاری کر دیا گیا
اگر منتظر موجود ہو → A · براہ راست حوالگی (نیا token)
اگر کلید موجود نہ ہو یا ٹوکن مختلف ہو
N · موجود نہیں
درخواستجواب

اگر جاری کی گئی کلید کے لیے کوئی منتظر موجود ہو، تو اسے بغیر کسی دوبارہ مقابلے کے براہ راست قطار کے سب سے آگے والے کو منتقل کر دیا جاتا ہے — جاری کرنے والے کو ملنے والے R (جاری کر دیا گیا) سے الگ، منتظر کو ایک نیا ٹوکن رکھنے والا A (حاصل شدہ) ملتا ہے۔