Raft প্যারামিটার
| বিষয় | মান |
|---|---|
| হার্টবিট ব্যবধান | ২৫০ms |
| নির্বাচন টাইমআউট | ৫০০ ~ ১০০০ms — লিডার ব্যর্থ হলে এই সময়ের মধ্যে নতুন লিডার নির্বাচন শুরু |
| নোড সংখ্যা | ৩ অথবা ৫ (কনফিগ লোডে বাধ্যতামূলক — অন্য সংখ্যায় বুট প্রত্যাখ্যাত) |
| নোড ID | cluster_peers তালিকায় নিজের (cluster_self) অবস্থান — তাই |
| তালিকার ক্রম সব নোডে অভিন্ন হতে হবে | |
| বুটস্ট্র্যাপ | চালুর ৫০০ms পর সব নোড একই মেম্বার গঠন দিয়ে ইনিশিয়ালাইজড হয় — ইতিমধ্যে |
| ইনিশিয়ালাইজড ক্লাস্টারে যোগ দিলে উপেক্ষিত হয় | |
| লগ সংরক্ষণ | ইন-মেমরি (উদ্বায়ী) — পুনরায় চালু হওয়া নোড রেপ্লিকেশন/স্ন্যাপশট দিয়ে পুনরুদ্ধার করে |
| lease মেয়াদ-শেষ শনাক্তকরণ | লিডার ১০০ms পর্যায়ক্রমে শনাক্ত করে ঐকমত্যের মাধ্যমে |
Expire কমিট করে | |
wait টাইমআউটের সূক্ষ্মতা | অপেক্ষা টাইমআউট (T)-ও একই ১০০ms টিকে নির্ধারিত হয় — সর্বোচ্চ |
| ১০০ms দেরিতে আসতে পারে |
নোড সংখ্যা ৩ বা ৫ কেন
কমিটের জন্য সংখ্যাগরিষ্ঠতা দরকার। জোড় সংখ্যার গঠন শুধু খরচ বাড়ায়, ব্যর্থতা-সহনশীলতা বাড়ায় না, তাই সার্ভার তা প্রত্যাখ্যান করে।
| নোড সংখ্যা | সংখ্যাগরিষ্ঠতা | একসাথে সহনীয় ব্যর্থতা |
|---|---|---|
| ২ | ২ | ০টি — একটি মারা গেলেই থেমে যায়। সিঙ্গেল মোডের চেয়ে ভালো কিছু না |
| ৩ | ২ | ১টি |
| ৪ | ৩ | ১টি — ৩-এর মতোই (শুধু খরচ বাড়ে) |
| ৫ | ৩ | ২টি |
ব্যর্থতার সময় আচরণের সারসংক্ষেপ
| পরিস্থিতি | আচরণ |
|---|---|
| লিডার নয় এমন নোডে ক্লায়েন্ট অনুরোধ | M (লিডারের ঠিকানা), লিডার অজানা হলে E no_leader |
| লিডার ব্যর্থতা | ৫০০-১০০০ms-এর মধ্যে নতুন লিডার নির্বাচিত। এর মাঝে অনুরোধে E no_leader → ক্লায়েন্ট আবার চেষ্টা করে |
| লিডার বদলের মুহূর্তে | অপেক্ষমাণ অর্জন অনুরোধ M/E no_leader দিয়ে পরিষ্কার হয় এবং ক্লায়েন্ট নতুন লিডারে আবার চেষ্টা করে |
| নোড পুনরায় চালু | খালি স্টেটে বুট → পিয়ারের লগ রেপ্লিকেশন/স্ন্যাপশট দিয়ে ধরে ফেলে |
| সংখ্যাগরিষ্ঠতা হারানো | কমিট অসম্ভব হয়ে যায় → লেখা বন্ধ (নিরাপত্তা প্রথম), সংখ্যাগরিষ্ঠতা ফিরে এলে স্বয়ংক্রিয়ভাবে আবার শুরু |
পরিভাষা
- সংখ্যাগরিষ্ঠতা (quorum) — মোট নোডের অর্ধেকের বেশি (৩-এ ২টি, বা ৫-এ ৩টি)। যেকোনো সিদ্ধান্তে সংখ্যাগরিষ্ঠতার সম্মতি লাগে বলে, বিচ্ছিন্ন হয়ে যাওয়া দুটি গ্রুপ কখনো একই সাথে ভিন্ন সিদ্ধান্ত কমিট করতে পারে না।
- নির্বাচন টাইমআউট (election timeout) — হার্টবিট ছাড়া কতক্ষণ অপেক্ষার পর একজন ফলোয়ার লিডার মারা গেছে ধরে নিয়ে নির্বাচন শুরু করে। প্রতি নোডে এলোমেলোভাবে ভিন্ন, যাতে একসাথে অনেকে প্রার্থী না হয়ে যায়।