CRDTs, गणित का उपयोग एक वितरित क्लस्टर भर में स्थिरता को लागू करने की सहमति और के बारे में चिंता किए बिना एसोसिएटेड विलंबता/अनुपलब्धता।
एक सीआरडीटी किसी भी समय अर्ध-जाली (विशेष रूप से एक अर्ध-जाली में शामिल होने) की श्रेणी के अंतर्गत आने वाले मूल्यों का सेट, जो कम से कम ऊपरी बाउंड फ़ंक्शन के साथ एक पीओएसईटी (आंशिक रूप से आदेशित सेट) है (एलयूबी)।
सरल शब्दों में, एक पीओएसईटी उन वस्तुओं का संग्रह होता है जिनमें सभी तुलनीय नहीं होते हैं। जैसे जोड़े की एक सरणी में: {(2,4), (4, 5), (2, 1), (6, 3)}
, (2,4)
< (4,5)
है, लेकिन इसकी तुलना (6,3)
से की जा सकती है (क्योंकि एक तत्व बड़ा है और दूसरा छोटा)। अब, अर्ध-जाली एक पीओएसईटी है जिसमें 2 जोड़े दिए जाते हैं, भले ही आप दोनों की तुलना नहीं कर सकें, आप दोनों से अधिक तत्व पा सकते हैं।
एक और शर्त यह है कि इस डेटाटाइप के अपडेट में वृद्धि की आवश्यकता है, सीआरडीटी के पास राज्य में बढ़ती स्थिति है, जहां ग्राहक कभी भी राज्य रोलबैक नहीं देखते हैं।
यह excellent article उदाहरण के रूप में ऊपर उपयोग की गई सरणी का उपयोग करता है। उन मानों को बनाए रखने वाले सीआरडीटी के लिए, यदि 2 प्रतिकृतियां (4,5)
और (6,3)
के बीच सर्वसम्मति प्राप्त करने की कोशिश कर रही हैं, तो वे सर्वसम्मति के रूप में एक LUB = (6,5)
चुन सकते हैं और दोनों प्रतिकृतियां असाइन कर सकते हैं। चूंकि मान बढ़ रहे हैं, इसलिए यह व्यवस्थित करने के लिए एक अच्छा मूल्य है।
2 तरीके CRDTs के लिए प्रतिकृतियां भर में एक दूसरे के साथ सिंक में रखने के लिए, वे के रूप में वे उन्हें (विनिमेय दोहराया डेटा प्रकार मिल भर में समय-समय पर (अभिसरण दोहराया डेटा प्रकार) भर में राज्य हस्तांतरण कर सकते हैं, या वे अद्यतन (डेल्टा) स्थानांतरित कर सकते हैं है)। पूर्व में अधिक बैंडविड्थ लेता है।
साउंडक्लाउड Roshi एक अच्छा उदाहरण है (हालांकि विकास में अब ऐसा नहीं लगता है), वे टाइमस्टैम्प से जुड़े डेटा को स्टोर करते हैं, जहां टाइमस्टैम्प स्पष्ट रूप से बढ़ रहा है। टाइमस्टैम्प के साथ आने वाले किसी भी अपडेट को कम या उसके द्वारा संग्रहीत किए गए बराबर के साथ आने वाले किसी भी अपडेट को छोड़ दिया जाता है, जो निष्क्रियता सुनिश्चित करता है (बार-बार लिखने के लिए ठीक है) और कम्यूटिटीविटी (ऑर्डर लिखने से ठीक है। कम्यूटिटीविटी a=b means b=a
है, जो इस मामले में अपडेट 1 के बाद अपडेट 2 है Update1 के बाद Update2)
लिखता है read-repair
के माध्यम से सभी समूहों के लिए भेजा जाता है, और अगर कुछ नोड्स सुस्ती या विभाजन की तरह किसी समस्या के कारण उत्तर नहीं दे पाते, वे बाद में पकड़ने के लिए उम्मीद कर रहे हैं, जो यह सुनिश्चित करता है के रूप में ही मान अभिसरण। जैसा कि मैंने उपर्युक्त उल्लेख किया है, अभिसरण 2 प्रोटोकॉल के माध्यम से हासिल किया जा सकता है, अन्य प्रतिकृतियों के लिए राज्य या अद्यतन प्रसारित किया जा सकता है। मेरा मानना है कि रोशी पूर्व करता है। read-repair
के हिस्से के रूप में, प्रतिकृतियां एक्सचेंज स्थिति, और क्योंकि डेटा अर्ध-जाली संपत्ति का पालन करता है, वे अभिसरण करते हैं।
पी एस। सीआरडीटी का उपयोग कर सिस्टम अंततः संगत होते हैं, यानी वे CAP theorem में एपी (अत्यधिक उपलब्ध और विभाजन-सहिष्णु) को अपनाते हैं।
Another excellent read on the subject.
मार्क जवाब स्वीकार किए जाते हैं, तो यह आपके सवाल का जवाब। –