Foundationপ্রথম নীতি থেকে
LEVEL 9 · Distributed Systems

Fencing Token

ফেন্সিং টোকেন

Lock-এর সঙ্গে একঘেয়ে বাড়তে থাকা সংখ্যা — storage পুরনো token-এর write ফেলে দেয়, zombie lock-holder নিষ্ক্রিয়।

also: fence-token

Kleppmann-এর ক্লাসিক দৃশ্য:

c1 lock#33 পায় → GC pause-এ জগ খেয়ে বসে
lock expire → c2 lock#34 পায় → write(token=34) ✓
c1 ঘুম থেকে write(token=33) ✗ storage: 33 < 34, reject!
  • Lock service নিজে যথেষ্ট নয় — fencing-এর ভার storage-side check-এ: token monotonic হতে হবে এবং receiver reject করতেই হবে
  • Monotonic source কী? Consensus protocol-এর term+index (Raft) বা lock server-এর atomic counter — আবার consensus-এই ফেরা
  • Token ছাড়া lease/lock-এর guarantee আসলে ‘best effort’ — এই শব্দটা design doc-এ লিখলে সৎতাই বাড়ে