প্রতিলিপিকৃত কমান্ড
প্রতিটি লক-স্টেট পরিবর্তন নিচের কমান্ডগুলোর একটি হিসেবে AppendEntries-এর লগ এন্ট্রিতে বহন করে প্রতিলিপিকৃত হয়, এবং সংখ্যাগরিষ্ঠ কমিটের পর সব নোড একই ক্রমে প্রয়োগ করে।
কমান্ড (লিডার প্রস্তাব করে)
| কমান্ড | ফিল্ড | অর্থ |
|---|---|---|
Grant | key, lease_ms | কী অর্জন। টোকেন কমান্ডে থাকে না — প্রয়োগের মুহূর্তে প্রতিটি নোডের স্টেট মেশিন নির্ধারণমূলকভাবে বরাদ্দ করে — তাই সব নোড একই টোকেন গণনা করে |
Release | key | কী মুক্তি |
Expire | key, token | লিডার-চালিত lease মেয়াদ শেষ। token মিললেই সরানো হয় — দেরিতে আসা বা দ্বৈত মেয়াদ-শেষ এর মাঝে নতুন প্রদত্ত লক মুছতে পারে না (আইডেমপোটেন্ট) |
প্রয়োগ ফলাফল (স্টেট মেশিন → লিডার)
| ফলাফল | অর্থ |
|---|---|
Granted { token } | অর্জন সফল — ইস্যু করা ফেন্সিং টোকেন |
GrantRejected | ইতিমধ্যে দখলে থাকা কী-তে Grant পৌঁছেছে (প্রতিরক্ষামূলক — স্বাভাবিক প্রবাহে ঘটে না) |
Released | মুক্তিপ্রাপ্ত |
NotFound | মুক্তি দিতে চাওয়া কী ছিল না |
Expired { existed } | মেয়াদ-শেষ প্রক্রিয়াজাত — existed বলে দেয় সত্যিই সরানো হয়েছিল কিনা |
Noop | কিছুই ঘটেনি |
প্রতিটি নোড lease-এর বাকি সময় নিজস্ব স্থানীয় ঘড়ি দিয়ে ট্র্যাক করে, তবে প্রকৃত অপসারণ সবসময় শুধু একটি কমিট করা Expire কমান্ডের মাধ্যমেই ঘটে — এই কারণেই নোডগুলোর মধ্যে ঘড়ির পার্থক্য লক-স্টেটকে কখনো বিভক্ত করতে পারে না। কোনো ক্লায়েন্ট সাড়া পাওয়ার আগেই সংযোগ বিচ্ছিন্ন হলে, লিডার প্রদানের ঠিক পরপরই নিজে একটি Release প্রস্তাব করে ভূতুড়ে লক তাৎক্ষণিক পরিষ্কার করে দেয়।
প্রবাহ — Expire প্রতিলিপিকরণ
মেয়াদ-শেষও লিডারের প্রস্তাব → সংখ্যাগরিষ্ঠ কমিট দিয়ে যাওয়া আরেকটি সাধারণ কমান্ড মাত্র। token যাচাইয়ের কল্যাণে, কমিট বিলম্বিত হওয়ার সময় একই কী পুনরায় প্রদত্ত হলেও, দেরিতে প্রয়োগ হওয়া Expire নতুন লক মুছতে পারে না।
পরিভাষা
- স্টেট মেশিন (state machine) — কমিট করা কমান্ড ক্রমানুসারে প্রয়োগ করে বর্তমান স্টেট (এখানে, লক টেবিল) তৈরি করে এমন অংশ। সব নোড একই কমান্ড একই ক্রমে প্রয়োগ করে বলে তারা সবসময় একই স্টেটে মিলিত হয়।
- কমিট (commit) — সংখ্যাগরিষ্ঠ নোড রেকর্ড করার পর একটি স্টেট যে "চূড়ান্ত" মর্যাদা পায়। শুধু কমিট করা কমান্ডই স্টেট মেশিনে প্রয়োগ হয়।
- আইডেমপোটেন্ট (idempotent) — একই কমান্ড ভুলবশত দুইবার প্রয়োগ হলেও ফলাফল পরিবর্তিত না হওয়ার বৈশিষ্ট্য।