मैंने साथियों के एक समूह के बीच डेटा सिंक्रनाइज़ेशन के दृष्टिकोण को देखना शुरू कर दिया है। साथियों को डिस्कनेक्ट तरीके से काम करने में सक्षम होना चाहिए और फिर अपने स्थानीय परिवर्तनों को मर्ज करने के लिए एक साथ सिंक्रनाइज़ करना चाहिए।
साथियों को "तीन तरह से मर्ज" के साथ स्थानीय अपडेट को मर्ज करने में सक्षम होना चाहिए । इसलिए, सिंक्रोनाइज़ेशन पीयर में पता होना चाहिए कि कौन से तथ्य अधिक हाल के हैं, लेकिन जहां कोई सख्त ऑर्डर नहीं है, उन्हें सामान्य रूट पर आधारित तथ्यों को एक साथ मिलाने में सक्षम होना चाहिए।
जब स्वतंत्र साथी परिवर्तन करते हैं, तो वे उन्हें "घड़ी" के साथ "मोहर" दे सकते हैं। मैं "घड़ी" और "टाइम स्टैम्प" शब्द का उपयोग करता हूं, लेकिन मेरा मतलब दीवार घड़ी नहीं है। मेरा मतलब है कि घटनाओं के कुछ प्रकार के आंशिक क्रम जो स्पष्टता को स्पष्ट करते हैं। यह उन घटनाओं के बीच " रिश्ते से पहले" हुआ है जो एक निर्देशित चक्रीय ग्राफ (DAG) बनाता है।
ऐसा लगता है कि इस सामान्य क्रम को बनाने के लिए "सामान्य" तरीका एक वेक्टर घड़ी का उपयोग करके है । हालांकि ये बहुत बड़े हो सकते हैं। अधिक हाल के घटनाक्रम जैसे कि अंतराल पेड़ की घड़ियां समय टिकटों के अधिक कॉम्पैक्ट भंडारण प्रदान करती हैं।
मैं इस बारे में बिल्कुल स्पष्ट नहीं हूं कि सिंक्रोनाइज़ेशन प्रोटोकॉल स्पष्ट रूप से डीएजी को स्पष्ट रूप से "स्टोर" क्यों नहीं करते हैं। (या वे करते हैं?)
स्वतंत्र रूप से यूयूआईडी (या अन्य माध्यम से, जैसे <peer-name> + <local-monotonically-increasing-counter>
) उत्पन्न करके सहकर्मी स्वतंत्र रूप से टाइम स्टैम्प बना सकते हैं । इस समय स्टाम्प का आदेश उस सहकर्मी के लिए पूरी तरह से स्पष्ट है।
जब 2 सहकर्मी एक-दूसरे के साथ सिंक करते हैं, तो वे नए समय की मुहर पर सहमत हो सकते हैं। फिर, इस समय की मुहर दोनों साथियों के लिए स्पष्ट है।
अब सहकर्मियों के बीच डीएजी से पहले हुआ पारित करने की आवश्यकता है, लेकिन इस के भंडारण और बैंडविड्थ की आवश्यकताएं छोटी हैं। समय बिंदु ग्राफ वर्टेक्स हैं। जैसे कि उनके पास 1 या 2 आवक किनारों (एक क्लाइंट पर एक घटना के लिए 1 और ग्राहकों के बीच सिंक के लिए 2) हैं। यह नेटवर्क में साथियों की संख्या से घिरा और स्वतंत्र है।
एक व्यक्तिगत समय बिंदु का उपयोग करने के लिए, आपको समय बिंदुओं के ग्राफ की आवश्यकता होती है जो इसके लिए नेतृत्व करते हैं। हालांकि, जहाँ तक मैं देख सकते हैं, किसी भी सहकर्मी कि करने में सक्षम है पता एक समय बिंदु के (यह वह खुद को उत्पन्न किया है, या किसी अन्य साथियों के साथ यह उत्पन्न, या किसी अन्य साथियों के द्वारा यह बताया गया है जब यह के साथ सिंक्रनाइज़) है भी था उस समय बिंदु तक पहुंचने वाले इतिहास के बारे में जानने का अवसर। मुझे लगता है कि इसके लिए एक प्रेरक प्रमाण है।
यह देखते हुए कि डीएजी को स्पष्ट रूप से संग्रहीत और सिंक करना सरल लगता है: क्या यह व्यवहार में उपयोग किया जाता है? यदि नहीं, तो वेक्टर घड़ियों को क्यों पसंद किया जाता है?
टिप्पणियाँ
पीयर टू पीयर
मैं एक ग्राहक सर्वर समाधान पर सहकर्मी से सहकर्मी समाधान पसंद करूंगा।
संभावित अंत टोपोलॉजी कई क्लाइंट्स होंगे जो सर्वर के बहुत छोटे समूह से जुड़ते हैं जो आपस में दोहराते हैं। हालाँकि, एक सामान्य समाधान करना अच्छा होगा जिसने इस विशिष्ट टोपोलॉजी के बजाय इस विशिष्ट टोपोलॉजी का समर्थन किया है जिसे इस विशिष्ट टोपोलॉजी की आवश्यकता है।