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

অনুরোধ × কী-স্টেট ম্যাট্রিক্স

A (অর্জন)

কী-স্টেটসার্ভারের কাজসাড়াসময়
নিবন্ধিত নয়নিবন্ধন (মেয়াদ = now+lease), টোকেন ইস্যুA+token+owner+keyতাৎক্ষণিক
নিবন্ধিত + মেয়াদ শেষনবায়ন (now+lease), নতুন টোকেনA+token+owner+keyতাৎক্ষণিক
Registered + valid holder + wait=0Queue-তে নয়T+owner+keyতাৎক্ষণিক
Registered + valid holder + wait>0Queue-তে, response pendingA বা T+owner+keyrelease/expiry-তে acquire, বা wait শেষে T
Queue বা server capacity সীমায়Queue-তে নয়B+owner+keyতাৎক্ষণিক
  • মুক্তির পথ FIFO-ন্যায্য: ধারক R করলে সারির সামনের অপেক্ষমাণকে সরাসরি হস্তান্তর (পুনরায় প্রতিযোগিতা ছাড়া, নতুন টোকেন)।
  • শুধু মেয়াদ-শেষের পথটিই non-FIFO।
  • Current holder-এর সমান owner-কে বিশেষ আচরণ দেওয়া হয় না। এটি active token ফেরানো বা lease renew করার authority নয়; সাধারণ held-key নিয়ম প্রযোজ্য।
  • Responses request order-এর বাইরে আসতে পারে; client echoed owner দিয়ে match করে। R (মুক্তি)
কী-স্টেটসার্ভারের কাজসাড়া
নিবন্ধিত + টোকেন মিলেছে, অপেক্ষমাণ আছেসামনের অপেক্ষমাণকে সরাসরি হস্তান্তর (নতুন টোকেন)R+token+key
নিবন্ধিত + টোকেন মিলেছে, অপেক্ষমাণ নেইকী মুছে ফেলাR+token+key
নিবন্ধিত + টোকেন মেলেনিকিছুই না (লক অক্ষত)N+token+key
নিবন্ধিত নয়কিছুই নাN+token+key

মেয়াদ শেষ প্রক্রিয়াকরণের সময়

  • সিঙ্গেল মোড মেয়াদ শেষ ল্যাজিভাবে প্রক্রিয়া করে — মেয়াদ পার হওয়া কী পরবর্তী অর্জনেই সেখানে হাতবদল হয় (উপরের সারণির দ্বিতীয় সারি), আর আলাদা একটি ৫-সেকেন্ড পর্যায়ক্রমিক পরিষ্কার অপেক্ষমাণহীন মেয়াদ-শেষ কী পরিষ্কার করে। তাই মেয়াদ শেষ হয়েছে কিন্তু এখনও পরিষ্কার হয়নি এমন কী-তে মুক্তি পাঠালে N-এর বদলে R আসতে পারে।
  • ক্লাস্টার মোডে লিডারকে ১০০ms পর্যায়ক্রমে মেয়াদ শেষ শনাক্ত করে ঐকমত্যের মাধ্যমে Expire কমান্ড কমিট করতে হয় তবেই কী অদৃশ্য হয় — নোডগুলোর মধ্যে ঘড়ির পার্থক্য লক-স্টেটকে বিভক্ত করে ফেলা ঠেকাতে এটি দরকার।

ক্লাস্টার মোডেও উপরের অর্থ একই থাকে — শুধু স্টেট পরিবর্তন সংখ্যাগরিষ্ঠ ঐকমত্যে কমিট হওয়ার পরই সাড়া বেরোয়, আর লিডার নয় এমন নোড প্রক্রিয়া না করে M (স্থানান্তরিত) অথবা

  • Cluster mode-এ leader token-validating deadline min-heap-এর পরের deadline পর্যন্ত অপেক্ষা করে এবং key অপসারণের আগে consensus-এ Expire command commit করে। এতে node clock পার্থক্য lock state ভাগ করে না।