असाइनमेंट: RTT का उपयोग करके एक वितरित प्रणाली को उपकरण बनाना 🌐#
(समन्वय के बिना सामंजस्य का अवलोकन)
उद्देश्य#
इस असाइनमेंट में, आप एक वितरित प्रणाली को उपकरणित करेंगे ताकि समय के साथ सामंजस्य का अवलोकन किया जा सके RTT‑प्रेरित विचारों का उपयोग करते हुए।
आप नहीं:
- संगति को लागू करेंगे
- विफलताओं को ठीक करेंगे
- समन्वय प्रोटोकॉल जोड़ेंगे
- प्रदर्शन को अनुकूलित करेंगे
आपका लक्ष्य है नोड्स के बीच धारणाओं को स्पष्ट करना.
पृष्ठभूमि (RTT वितरित प्रणालियों में क्यों फिट बैठता है)#
वितरित प्रणालियाँ असफल होती हैं न कि नियमों की कमी के कारण, बल्कि इसलिए:
- समय असंगत है
- धारणाएँ नोड्स के बीच भिन्न होती हैं
- सीमाएँ चुपचाप पार की जाती हैं
RTT इन समस्याओं को संगति समस्याएँ मानता है, नियंत्रण समस्याएँ नहीं।
सेटअप#
निम्नलिखित में से कोई एक का उपयोग करें:
- एक कुंजी-मूल्य भंडार (खिलौना या असली)
- एक संदेश-प्रेषण प्रणाली
- एक पुनरावृत्त सेवा
- एक सहमति सिम्युलेटर
- आपके प्रशिक्षक द्वारा प्रदान किया गया एक वितरित प्रयोगशाला ढांचा
आप एक ही मशीन पर नोड्स का अनुकरण कर सकते हैं।
कार्य का अवलोकन#
आप करेंगे:
- एक वितरित धारणा की घोषणा करें
- एक संगति गलियारा परिभाषित करें
- सीमा घटनाओं का अवलोकन करें
- जब धारणाएँ भटकें तो बैज जारी करें
- कुछ और न करें
चरण 1: एक वितरित धारणा की घोषणा करें 🧠#
अपने सिस्टम द्वारा निहित एक धारणा चुनें।
उदाहरण:
- “सभी प्रतिकृतियाँ अंततः वही मान देखती हैं।”
- “संदेश एक सीमित समय के भीतर वितरित होते हैं।”
- “नेता किसी भी क्षण में अद्वितीय होते हैं।”
- “घड़ियाँ समय मुहरों की तुलना करने के लिए पर्याप्त निकट हैं।”
- “अनुरोध कारणात्मक क्रम में संसाधित होते हैं।”
इस धारणा को एक वाक्य में लिखें।
चरण 2: एक संगति गलियारा परिभाषित करें 🛤️#
विवरण दें कि सामान्य व्यवहार समय के साथ और नोड्स के बीच कैसा दिखता है।
उदाहरण:
- अधिकतम स्वीकार्य संदेश विलंब
- प्रतिकृतियों के बीच अनुमत विचलन विंडो
- अपेक्षित हार्टबीट अंतराल
- स्वीकृत घड़ी का झुकाव
यह गलियारा अपेक्षित संगति को परिभाषित करता है, न कि सहीता।
चरण 3: एक सीमा का अवलोकन करें 🔄#
पहचानें जहाँ अनुमान भटक सकता है.
उदाहरण:
- संदेश भेजना / प्राप्त करना
- प्रतिलिपि अद्यतन
- नेता चुनाव
- समय समाप्ति
- राज्य समन्वयन
उपकरण जोड़ें केवल इस सीमा पर.
चरण 4: एक बैज जारी करें 🏷️#
जब व्यवहार गलियारे से बाहर निकलता है, तो एक बैज जारी करें।
एक बैज में शामिल होना चाहिए:
- क्या हुआ
- कौन सा नोड ने इसे देखा
- कब देखा गया (स्थानीय समय ठीक है)
- संबंधित संदर्भ (आईडी, संस्करण, देरी)
उदाहरण (सैद्धांतिक):
[BADGE]
type: COHERENCE_DRIFT
module: replication
node: replica_3
context: version_lag_exceeded
timestamp: 48291बैज को स्थानीय रूप से लॉग किया जा सकता है या केंद्रीय रूप से एकत्र किया जा सकता है।
चरण 5: समन्वय न करें 🚫#
यह महत्वपूर्ण है।
आपकी प्रणाली को:
- पुनः प्रयास नहीं करना चाहिए
- पुनः चुनाव नहीं करना चाहिए
- पुनः समन्वय नहीं करना चाहिए
- प्रगति को अवरुद्ध नहीं करना चाहिए
केवल अवलोकन।
डिलिवरेबल्स 📦#
जमा करें:
- आपकी घोषित धारणा और गलियारा
- उपकरण कोड
- कई नोड्स से नमूना बैज आउटपुट
- एक संक्षिप्त विचार (5–7 वाक्य):
- क्या डिफ्ट हुआ?
- क्या यह नोड्स के बीच सममित था?
- क्या समय स्थिति से अधिक महत्वपूर्ण था?
ग्रेडिंग मानदंड#
आपका ग्रेड इस पर आधारित है:
- धारणा की स्पष्टता
- अवलोकन की सटीकता
- बैज संदर्भ की उपयोगिता
- संयम (कोई नियंत्रण तर्क नहीं)
आपका ग्रेड इस पर आधारित नहीं है:
- संगति की गारंटी
- दोष सहिष्णुता
- प्रदर्शन
यह क्यों महत्वपूर्ण है#
अधिकांश वितरित विफलताएँ बग नहीं हैं - वे अवलोकित विचलन हैं।
RTT आपको प्रशिक्षित करता है:
- समन्वय से पहले विचलन को देखना
- अवलोकन को सहमति से अलग करना
- समय के बारे में स्पष्ट रूप से तर्क करना
ये कौशल लागू होते हैं:
- डेटाबेस
- सहमति प्रणाली
- सूक्ष्म सेवाएँ
- वितरित एआई प्रणाली
वैकल्पिक विस्तार 🌱#
परिचय:
- नेटवर्क विलंब
- संदेश हानि
- घड़ी का अंतर
देखें कि बैज पैटर्न कैसे बदलते हैं।
कुछ भी “ठीक” न करें।
शिक्षक नोट#
यह असाइनमेंट निम्नलिखित व्याख्यानों के साथ अच्छी तरह से मेल खाता है:
- अंतिम स्थिरता
- CAP व्यापार
- विफलता डिटेक्टर
- तार्किक बनाम भौतिक समय
छात्र अक्सर यह पता लगाते हैं कि समय, तर्क नहीं, सबसे कठिन भाग है।
