বর্তমানে পরীক্ষা চলছে: সম্পূর্ণ হলে GitHub কোড উন্মুক্ত করা হবে।

B · ব্যস্ত

গঠনrefresh

Acquire request (A) key queue বা global key/waiter/pending/memory admission সীমায় থাকায় গৃহীত হয়নি। এই request নিশ্চিতভাবে lock পায়নি, এবং frame invalid ছিল না।

owner request-এর echoed correlator, যা rejected acquire শনাক্ত করে (matching rules)।

Client handling

Official clients correlated B সঙ্গে সঙ্গে Busy/Capacity error হিসেবে caller-কে দেয় এবং একই logical acquire internally resend করে না। Retry করতে caller overall deadline ও backoff ঠিক করে নতুন owner দিয়ে নতুন acquire explicitly শুরু করে।

বাস্তবে পাওয়া B non-acquire প্রমাণ করে, তাই আলাদা নতুন call safe। Response না পাওয়া send-কে B ধরে নেবেন না; সেটি Indeterminate

বাইট নোটেশন: op একটি ASCII অক্ষর, owner বাইনারি (u64, বিগ-এন্ডিয়ান), আর key UTF-8 টেক্সট (পরিবর্তনশীল-দৈর্ঘ্যের, স্ট্রাকচারে N হিসেবে দেখানো)। শেষের \n হলো 0A। ফিক্সড হেডার বাইনারি মান বলে এতে 0x0A থাকতে পারে, তাই নিউলাইন খোঁজার আগে বাইট-সংখ্যা অনুযায়ী আগে গ্রাস করতে হবে।

প্রবাহ

ক্লায়েন্ট
সার্ভার
A · অর্জন (key · owner)
এই কী-এর সারি max_waiters-এ পৌঁছেছে
B · ব্যস্ত (owner ইকো)
Busy ফেরত — caller নতুন logical acquire ঠিক করে
A · নতুন acquire (ঐচ্ছিক retry)
জায়গা হলে → A · acquired (token)
অনুরোধপ্রতিক্রিয়া

এই limits memory guardrails। Daemon OOM হওয়ার আগে নতুন acquires reject হয় এবং exact-token release, approved responses, cleanup ও Raft recovery-এর resources সংরক্ষিত থাকে। key_busy, per_key_limit, global_overload ইত্যাদি কারণ wire নয়, metrics/logs-এ আলাদা হয়।