2014-11-01 8 views
19

के बीच मतभेद क्या कोई मुझे ऑपरेशनल ट्रांसफॉर्म और सीआरडीटी के बीच मुख्य अंतर समझा सकता है?ओटी और सीआरडीटी

जहां तक ​​मैं समझता हूं, दोनों एल्गोरिदम हैं जो वितरित सिस्टम के विभिन्न नोड्स पर बिना किसी संघर्ष के डेटा एकत्र करने की अनुमति देते हैं।

आप किस एल्बोरिदम का उपयोग करते हैं? जहां तक ​​मैं समझता हूं, ओटी ज्यादातर टेक्स्ट के लिए उपयोग किया जाता है और सीआरडीटी अधिक सामान्य है और अधिक उन्नत संरचनाओं को सही तरीके से संभाल सकता है?

सीआरडीटी ओटी से अधिक शक्तिशाली है?


मैं क्योंकि मैं कैसे HTML दस्तावेज़ के लिए एक सहयोगी संपादक लागू करने के लिए देखने के लिए कोशिश कर रहा हूँ यह सवाल पूछते हैं, और किस दिशा में पहला देखने के लिए यकीन नहीं। मैंने शेयरजेएस प्रोजेक्ट देखा, और contenteditables तत्वों पर ब्राउज़र पर समृद्ध टेक्स्ट सहयोग का समर्थन करने के उनके प्रयासों को देखा। ShareJS में कहीं भी मुझे इसके लिए सीआरडीटी का उपयोग करने का कोई प्रयास नहीं दिखता है।

हम यह भी जानते हैं कि Google डॉक्स ओटी का उपयोग कर रहा है और यह समृद्ध दस्तावेज़ों के वास्तविक समय संस्करण के लिए बहुत अच्छा काम कर रहा है। क्या ओटी का उपयोग करने की Google की पसंद है क्योंकि उस समय सीआरडीटी बहुत ज्ञात नहीं था? या आज भी यह एक अच्छा विकल्प होगा?

मुझे डेटाबेस पर इन एल्गोरिदम का उपयोग करने जैसे अन्य उपयोग मामलों के बारे में भी सुनना है। Riak सीआरडीटी का उपयोग करने लगता है। क्या ओटी को डेटाबेस के नोड्स को सिंक करने के लिए भी इस्तेमाल किया जा सकता है और पैक्सोस/ज़ब/राफ्ट का विकल्प हो सकता है?

+0

आपको अपने उद्देश्यों के लिए बनाया गया ट्रीडोक पेपर पढ़ना चाहिए https://hal.inria.fr/inria-00445975/document – simbo1905

उत्तर

21

दोनों दृष्टिकोण समान हैं कि वे अंतिम स्थिरता प्रदान करते हैं। अंतर यह है कि वे इसे कैसे करते हैं। इसे देख करने का एक तरीका है:

  • OT संचालन बदलकर यह करता है। तारों पर ऑपरेशन भेजे जाते हैं और एक बार प्राप्त होने के बाद समवर्ती संचालन बदल जाते हैं।
  • सीआरडीटी राज्य बदलकर ऐसा करते हैं। स्थानीय सीआरडीटी पर संचालन किए जाते हैं। इसका राज्य तार पर भेजा जाता है और एक प्रतिलिपि की स्थिति के साथ विलय कर दिया जाता है। इससे कोई फ़र्क नहीं पड़ता कि कितनी बार या किस क्रम में विलय किए जाते हैं - सभी प्रतियां एकत्रित होती हैं।

आप सही हैं, ओटी ज्यादातर पाठ के लिए प्रयोग किया जाता है और CRDTs से पहले बन करता है लेकिन research पता चलता है कि:

साहित्य में

कई OT एल्गोरिदम अभिसरण गुण को संतुष्ट नहीं करते के विपरीत क्या द्वारा कहा गया था उनके लेखकों

दूसरे शब्दों में सीआरडीटी विलय करना कम्यूटिव है जबकि ओटी रूपांतरण कार्यों कभी-कभी नहीं होते हैं।

Wikipedia article on CRDT से

:

ओटीएस आम तौर पर जटिल और गैर स्केलेबल

CRDTs के विभिन्न प्रकार के (सेट, काउंटर, ...) समस्याओं के विभिन्न प्रकार के लिए अनुकूल हैं कर रहे हैं। कुछ ऐसे हैं जो टेक्स्ट संपादन के लिए डिज़ाइन किए गए हैं। उदाहरण के लिए, Treedoc - A commutative replicated data type for cooperative editing

+7

सीआरडीटी न केवल राज्य आधारित हैं, वे दो स्वादों में आते हैं। राज्य आधारित सीवीआरडीटी (अभिसरण प्रतिकृति डेटा प्रकार) और संचालन आधारित सीएमआरडीटी (कम्यूटेटेड प्रतिकृति डेटा प्रकार)। – Magnus

+3

@Magnus इससे सवाल उठता है, ओटी और सीएमआरडीटी के बीच क्या अंतर है? – hrdwdmrbl

+3

@hrdwdmrbl खैर, सीएमआरडीटी में कम्यूटिव ऑपरेशंस की सुविधा है, इसलिए आपको उन्हें सही तरीके से लागू करने के लिए उन्हें बदलने की ज़रूरत नहीं है। या तो वे फिट हैं या आप कुछ खो रहे हैं और एक ऑपरेशन के लिए इंतजार करना है। ओटी बढ़ती समय जटिलता के साथ विरोधाभासी संपादन की समस्या से संबंधित है, जबकि सीआरडीटी ने अंतरिक्ष जटिलता में वृद्धि की है। –

संबंधित मुद्दे