Ticketing
दस्तावेज़

Raft पैरामीटर

आइटममान
हार्टबीट अंतराल250ms
चुनाव टाइमआउट500-1000ms — लीडर विफलता के बाद इस विंडो के भीतर एक नया लीडर चुनाव शुरू होता है
नोड संख्या3 या 5 (कॉन्फ़िग लोड के समय लागू — इसके अलावा कुछ भी बूट होने से इनकार करता है)
नोड IDcluster_peers सूची में इसकी (cluster_self) स्थिति — यही कारण है कि सूची का क्रम हर नोड पर समान होना चाहिए
बूटस्ट्रैपस्टार्टअप के 500ms बाद, हर नोड एक ही सदस्यता के साथ इनिशियलाइज़ होता है — पहले से इनिशियलाइज़ किए गए क्लस्टर में शामिल होने पर अनदेखा किया जाता है
लॉग स्टोरेजइन-मेमोरी (अस्थायी) — एक रीस्टार्ट किया गया नोड प्रतिकृति/स्नैपशॉट के ज़रिए ठीक होता है
Lease-समाप्ति पहचानलीडर हर 100ms में जाँचता है और सर्वसम्मति से Expire कमिट करता है
wait टाइमआउट सूक्ष्मताप्रतीक्षा टाइमआउट (T) भी उसी 100ms टिक पर तय होता है — यह 100ms तक देर से आ सकता है

नोड संख्या 3 या 5 ही क्यों

एक कमिट के लिए बहुमत चाहिए। एक सम (even) संख्या वाला कॉन्फ़िगरेशन केवल लागत बढ़ाता है बिना फ़ॉल्ट टॉलरेंस बढ़ाए, इसलिए सर्वर इसे अस्वीकार करता है।

नोड संख्याबहुमतसहनीय समवर्ती विफलताएँ
220 — एक भी विफलता क्लस्टर को रोक देती है। सिंगल मोड से बेहतर नहीं
321
431 — 3 नोड जितना ही, बस लागत अधिक
532

विफलता व्यवहार सारांश

स्थितिव्यवहार
किसी गैर-लीडर नोड को क्लाइंट अनुरोधM (लीडर पता), या यदि लीडर अज्ञात है तो E no_leader
लीडर विफलता500-1000ms के भीतर नया लीडर चुना जाता है। उस दौरान अनुरोधों को E no_leader मिलता है → क्लाइंट पुनः प्रयास करता है
लीडर-परिवर्तन के बीचलंबित अधिग्रहण अनुरोध M/E no_leader से साफ़ किए जाते हैं, और क्लाइंट नए लीडर के विरुद्ध पुनः प्रयास करता है
नोड रीस्टार्टखाली स्थिति से बूट होता है → किसी पीयर की लॉग प्रतिकृति/स्नैपशॉट के ज़रिए पकड़ता है
बहुमत खोनाकमिट असंभव हो जाते हैं → लेखन रुक जाता है (सुरक्षा पहले), बहुमत बहाल होते ही स्वचालित रूप से फिर शुरू होता है

शब्दावली

  • बहुमत/कोरम (quorum) — सभी नोड्स के आधे से अधिक (3 में से 2, या 5 में से 3)। चूँकि किसी भी निर्णय के लिए कोरम की सहमति चाहिए, विभाजित दो समूह कभी भी एक साथ परस्पर विरोधी निर्णय कमिट नहीं कर सकते।
  • चुनाव टाइमआउट (election timeout) — एक फॉलोवर बिना हार्टबीट के कितनी देर प्रतीक्षा करता है इससे पहले कि वह यह निष्कर्ष निकाले कि लीडर मर चुका है और एक चुनाव शुरू करे। एक साथ कई उम्मीदवार बनने से रोकने के लिए यह प्रति नोड यादृच्छिक (randomized) है।