Ticketing
دستاویزات

Raft پیرامیٹرز

آئٹمقدر
ہارٹ بیٹ وقفہ250ms
انتخابی ٹائم آؤٹ500-1000ms — قائد کی ناکامی کے بعد اس وقفے کے اندر نئے قائد کا انتخاب شروع ہوتا ہے
نوڈز کی تعداد3 یا 5 (کنفیگ لوڈ پر نافذ — کوئی اور تعداد بوٹ ہونے سے انکار کرتی ہے)
نوڈ IDcluster_peers فہرست میں اپنی (cluster_self) پوزیشن — اسی لیے فہرست کی ترتیب ہر نوڈ پر یکساں ہونی چاہیے
Bootstrapآغاز کے 500ms بعد، ہر نوڈ ایک ہی ممبرشپ کے ساتھ initialize ہوتا ہے — اگر پہلے سے initialized کلسٹر میں شامل ہو رہا ہو تو نظر انداز
لاگ اسٹوریجمیموری میں (volatile) — دوبارہ شروع ہونے والا نوڈ نقل/اسنیپ شاٹ سے بحال ہوتا ہے
lease میعاد ختم ہونے کی تشخیصقائد ہر 100ms میں جانچتا ہے اور Expire کو اتفاقِ رائے سے کمٹ کرتا ہے
wait ٹائم آؤٹ کی باریکیانتظار کا ٹائم آؤٹ (T) بھی اسی 100ms ٹک پر طے ہوتا ہے — یہ 100ms تک دیر سے آ سکتا ہے

نوڈز کی تعداد 3 یا 5 کیوں ہے

کمٹ کے لیے اکثریت درکار ہے۔ جفت تعداد کی ترتیب صرف لاگت بڑھاتی ہے بغیر خرابی برداشت کرنے کی صلاحیت بڑھائے، اس لیے سرور اسے مسترد کرتا ہے۔

نوڈز کی تعداداکثریتبیک وقت برداشت کی جانے والی ناکامیاں
220 — ایک ناکامی سے کلسٹر رک جاتا ہے۔ سنگل موڈ سے بہتر نہیں
321
431 — 3 نوڈز جیسا ہی، بس لاگت زیادہ
532

ناکامی کے رویے کا خلاصہ

صورتحالرویہ
غیر-قائد نوڈ کو کلائنٹ کی درخواستM (قائد کا پتہ)، یا اگر قائد معلوم نہ ہو تو E no_leader
قائد کی ناکامی500-1000ms میں نیا قائد منتخب۔ اس دوران درخواستیں E no_leader پاتی ہیں → کلائنٹ دوبارہ کوشش کرتا ہے
قائد کی تبدیلی کا لمحہزیر التوا حصول کی درخواستیں M/E no_leader سے صاف کی جاتی ہیں، اور کلائنٹ نئے قائد کے خلاف دوبارہ کوشش کرتا ہے
نوڈ کا دوبارہ آغازخالی حالت میں بوٹ → پیئر کی لاگ نقل/اسنیپ شاٹ سے پکڑتا ہے
اکثریت کا نقصانکمٹ ناممکن → تحریر رک جاتی ہے (حفاظت پہلے)، اکثریت بحال ہوتے ہی خودکار طور پر دوبارہ شروع

اصطلاحات

  • quorum — کل نوڈز کے نصف سے زیادہ (3 میں سے 2، یا 5 میں سے 3)۔ چونکہ کسی بھی فیصلے کے لیے quorum کی رضامندی درکار ہے، دو الگ ہو جانے والے گروہ کبھی بیک وقت متضاد فیصلے کمٹ نہیں کر سکتے۔
  • election timeout — وہ وقت جس تک ایک فالوور بغیر ہارٹ بیٹ کے انتظار کرتا ہے اس سے پہلے کہ یہ نتیجہ اخذ کرے کہ قائد مر چکا ہے اور انتخاب شروع کرے۔ ہر نوڈ کے لیے بے ترتیب (randomized) ہوتا ہے تاکہ بیک وقت امیدوار بننے کا امکان کم ہو۔