असाइनमेंट: RTT का उपयोग करके एक वितरित प्रणाली को उपकरण बनाना 🌐#

(समन्वय के बिना सामंजस्य का अवलोकन)

उद्देश्य#

इस असाइनमेंट में, आप एक वितरित प्रणाली को उपकरणित करेंगे ताकि समय के साथ सामंजस्य का अवलोकन किया जा सके RTT‑प्रेरित विचारों का उपयोग करते हुए।

आप नहीं:

  • संगति को लागू करेंगे
  • विफलताओं को ठीक करेंगे
  • समन्वय प्रोटोकॉल जोड़ेंगे
  • प्रदर्शन को अनुकूलित करेंगे

आपका लक्ष्य है नोड्स के बीच धारणाओं को स्पष्ट करना.


पृष्ठभूमि (RTT वितरित प्रणालियों में क्यों फिट बैठता है)#

वितरित प्रणालियाँ असफल होती हैं न कि नियमों की कमी के कारण, बल्कि इसलिए:

  • समय असंगत है
  • धारणाएँ नोड्स के बीच भिन्न होती हैं
  • सीमाएँ चुपचाप पार की जाती हैं

RTT इन समस्याओं को संगति समस्याएँ मानता है, नियंत्रण समस्याएँ नहीं।


सेटअप#

निम्नलिखित में से कोई एक का उपयोग करें:

  • एक कुंजी-मूल्य भंडार (खिलौना या असली)
  • एक संदेश-प्रेषण प्रणाली
  • एक पुनरावृत्त सेवा
  • एक सहमति सिम्युलेटर
  • आपके प्रशिक्षक द्वारा प्रदान किया गया एक वितरित प्रयोगशाला ढांचा

आप एक ही मशीन पर नोड्स का अनुकरण कर सकते हैं।


कार्य का अवलोकन#

आप करेंगे:

  1. एक वितरित धारणा की घोषणा करें
  2. एक संगति गलियारा परिभाषित करें
  3. सीमा घटनाओं का अवलोकन करें
  4. जब धारणाएँ भटकें तो बैज जारी करें
  5. कुछ और न करें

चरण 1: एक वितरित धारणा की घोषणा करें 🧠#

अपने सिस्टम द्वारा निहित एक धारणा चुनें।

उदाहरण:

  • “सभी प्रतिकृतियाँ अंततः वही मान देखती हैं।”
  • “संदेश एक सीमित समय के भीतर वितरित होते हैं।”
  • “नेता किसी भी क्षण में अद्वितीय होते हैं।”
  • “घड़ियाँ समय मुहरों की तुलना करने के लिए पर्याप्त निकट हैं।”
  • “अनुरोध कारणात्मक क्रम में संसाधित होते हैं।”

इस धारणा को एक वाक्य में लिखें।


चरण 2: एक संगति गलियारा परिभाषित करें 🛤️#

विवरण दें कि सामान्य व्यवहार समय के साथ और नोड्स के बीच कैसा दिखता है।

उदाहरण:

  • अधिकतम स्वीकार्य संदेश विलंब
  • प्रतिकृतियों के बीच अनुमत विचलन विंडो
  • अपेक्षित हार्टबीट अंतराल
  • स्वीकृत घड़ी का झुकाव

यह गलियारा अपेक्षित संगति को परिभाषित करता है, न कि सहीता।


चरण 3: एक सीमा का अवलोकन करें 🔄#

पहचानें जहाँ अनुमान भटक सकता है.

उदाहरण:

  • संदेश भेजना / प्राप्त करना
  • प्रतिलिपि अद्यतन
  • नेता चुनाव
  • समय समाप्ति
  • राज्य समन्वयन

उपकरण जोड़ें केवल इस सीमा पर.


चरण 4: एक बैज जारी करें 🏷️#

जब व्यवहार गलियारे से बाहर निकलता है, तो एक बैज जारी करें।

एक बैज में शामिल होना चाहिए:

  • क्या हुआ
  • कौन सा नोड ने इसे देखा
  • कब देखा गया (स्थानीय समय ठीक है)
  • संबंधित संदर्भ (आईडी, संस्करण, देरी)

उदाहरण (सैद्धांतिक):

[BADGE]
type: COHERENCE_DRIFT
module: replication
node: replica_3
context: version_lag_exceeded
timestamp: 48291

बैज को स्थानीय रूप से लॉग किया जा सकता है या केंद्रीय रूप से एकत्र किया जा सकता है।


चरण 5: समन्वय न करें 🚫#

यह महत्वपूर्ण है।

आपकी प्रणाली को:

  • पुनः प्रयास नहीं करना चाहिए
  • पुनः चुनाव नहीं करना चाहिए
  • पुनः समन्वय नहीं करना चाहिए
  • प्रगति को अवरुद्ध नहीं करना चाहिए

केवल अवलोकन।


डिलिवरेबल्स 📦#

जमा करें:

  1. आपकी घोषित धारणा और गलियारा
  2. उपकरण कोड
  3. कई नोड्स से नमूना बैज आउटपुट
  4. एक संक्षिप्त विचार (5–7 वाक्य):
    • क्या डिफ्ट हुआ?
    • क्या यह नोड्स के बीच सममित था?
    • क्या समय स्थिति से अधिक महत्वपूर्ण था?

ग्रेडिंग मानदंड#

आपका ग्रेड इस पर आधारित है:

  • धारणा की स्पष्टता
  • अवलोकन की सटीकता
  • बैज संदर्भ की उपयोगिता
  • संयम (कोई नियंत्रण तर्क नहीं)

आपका ग्रेड इस पर आधारित नहीं है:

  • संगति की गारंटी
  • दोष सहिष्णुता
  • प्रदर्शन

यह क्यों महत्वपूर्ण है#

अधिकांश वितरित विफलताएँ बग नहीं हैं - वे अवलोकित विचलन हैं।

RTT आपको प्रशिक्षित करता है:

  • समन्वय से पहले विचलन को देखना
  • अवलोकन को सहमति से अलग करना
  • समय के बारे में स्पष्ट रूप से तर्क करना

ये कौशल लागू होते हैं:

  • डेटाबेस
  • सहमति प्रणाली
  • सूक्ष्म सेवाएँ
  • वितरित एआई प्रणाली

वैकल्पिक विस्तार 🌱#

परिचय:

  • नेटवर्क विलंब
  • संदेश हानि
  • घड़ी का अंतर

देखें कि बैज पैटर्न कैसे बदलते हैं।

कुछ भी “ठीक” न करें।


शिक्षक नोट#

यह असाइनमेंट निम्नलिखित व्याख्यानों के साथ अच्छी तरह से मेल खाता है:

  • अंतिम स्थिरता
  • CAP व्यापार
  • विफलता डिटेक्टर
  • तार्किक बनाम भौतिक समय

छात्र अक्सर यह पता लगाते हैं कि समय, तर्क नहीं, सबसे कठिन भाग है।

Updated