डेटा सिंक्रनाइज़ेशन

डेटा सिंक्रोनाइज़ेशन स्रोत और लक्ष्य डेटा स्टोर के बीच संगति (डेटाबेस सिस्टम) स्थापित करने और समय के साथ डेटा के निरंतर सामंजस्य स्थापित करने की प्रक्रिया है। यह फ़ाइल सिंक्रोनाइज़ेशन और मोबाइल डिवाइस सिंक्रोनाइज़ेशन सहित विभिन्न प्रकार के अनुप्रयोगों के लिए मौलिक है।

डेटा सिंक्रोनाइज़ेशन कुंजी सर्वर (क्रिप्टोग्राफ़िक) को सिंक्रोनाइज़ करने के लिए एन्क्रिप्शन में भी उपयोगी हो सकता है।

फ़ाइल-आधारित समाधान
फ़ाइल सिंक्रनाइज़ेशन, संस्करण नियंत्रण (समवर्ती संस्करण सिस्टम, सबवर्जन (सॉफ़्टवेयर), आदि), वितरित फ़ाइल सिस्टम (कोडा (फ़ाइल सिस्टम), आदि), और मिरर वेबसाइट (rsync, आदि) के लिए उपकरण उपलब्ध हैं, ये सभी फ़ाइलों के सेट को सिंक्रनाइज़ रखने का प्रयास करते हैं। हालाँकि, केवल संस्करण नियंत्रण और फ़ाइल सिंक्रनाइज़ेशन उपकरण फ़ाइलों की एक से अधिक प्रतिलिपि में संशोधन से निपट सकते हैं।


 * फ़ाइल सिंक्रनाइज़ेशन का उपयोग आमतौर पर बाहरी हार्ड ड्राइव पर होम बैकअप या यूएसबी फ्लैश ड्राइव पर ट्रांसपोर्ट के लिए अपडेट करने के लिए किया जाता है। स्वचालित प्रक्रिया पहले से ही समान फ़ाइलों की प्रतिलिपि बनाने से रोकती है, इस प्रकार मैन्युअल प्रतिलिपि के सापेक्ष काफी समय बचा सकती है, साथ ही तेज़ और कम त्रुटि प्रवण होती है।
 * संस्करण नियंत्रण उपकरण का उद्देश्य उन स्थितियों से निपटना है जहां एक से अधिक उपयोगकर्ता एक ही फ़ाइल को एक साथ संशोधित करने का प्रयास करते हैं, जबकि फ़ाइल सिंक्रोनाइज़र उन स्थितियों के लिए अनुकूलित होते हैं जहां एक समय में फ़ाइल की केवल एक प्रति संपादित की जाएगी। इस कारण से, हालांकि संस्करण नियंत्रण उपकरण का उपयोग फ़ाइल सिंक्रनाइज़ेशन के लिए किया जा सकता है, समर्पित कार्यक्रमों को कम कम्प्यूटेशनल ओवरहेड की आवश्यकता होती है।
 * वितरित फ़ाइल सिस्टम को यह सुनिश्चित करने के रूप में भी देखा जा सकता है कि फ़ाइल के कई संस्करण सिंक्रनाइज़ हैं। इसके लिए आम तौर पर आवश्यक है कि फ़ाइलों को संग्रहीत करने वाले उपकरण हमेशा जुड़े रहें, लेकिन कुछ वितरित फ़ाइल सिस्टम जैसे कोडा (फ़ाइल सिस्टम) डिस्कनेक्ट किए गए ऑपरेशन के बाद सामंजस्य की अनुमति देते हैं। वितरित फ़ाइल सिस्टम की विलय सुविधाएं आम तौर पर संस्करण नियंत्रण प्रणाली की तुलना में अधिक सीमित होती हैं क्योंकि अधिकांश फ़ाइल सिस्टम संस्करण ग्राफ़ नहीं रखते हैं।
 * मिरर वेबसाइट|मिरर (कंप्यूटिंग): मिरर एक डेटा सेट की एक सटीक प्रतिलिपि है। इंटरनेट पर, एक मिरर साइट किसी अन्य इंटरनेट साइट की हूबहू प्रतिलिपि होती है। मिरर साइटों का उपयोग आमतौर पर एक ही जानकारी के कई स्रोत प्रदान करने के लिए किया जाता है, और बड़े डाउनलोड तक विश्वसनीय पहुंच प्रदान करने के तरीके के रूप में ये विशेष महत्व की हैं।

सैद्धांतिक मॉडल
अनुसंधान साहित्य में डेटा सिंक्रनाइज़ेशन के कई सैद्धांतिक मॉडल मौजूद हैं, और यह समस्या सूचना सिद्धांत में स्लेपियन-वुल्फ कोडिंग की समस्या से भी संबंधित है। मॉडलों को इस आधार पर वर्गीकृत किया जाता है कि वे डेटा को कैसे सिंक्रनाइज़ मानते हैं।

अनियंत्रित डेटा
अव्यवस्थित डेटा को सिंक्रनाइज़ करने की समस्या (जिसे सेट सुलह समस्या के रूप में भी जाना जाता है) को सममित अंतर की गणना करने के प्रयास के रूप में तैयार किया गया है $$S_A \oplus S_B = (S_A - S_B) \cup (S_B - S_A)$$ दो दूरस्थ सेटों के बीच $$S_A$$ और $$S_B$$ बी-बिट संख्याओं का। इस समस्या के कुछ समाधान इस प्रकार बताए गए हैं:


 * थोक स्थानांतरण: इस मामले में सभी डेटा को स्थानीय तुलना के लिए एक होस्ट में स्थानांतरित किया जाता है।
 * टाइमस्टैंप सिंक्रनाइज़ेशन: इस मामले में डेटा में सभी परिवर्तन टाइमस्टैंप के साथ चिह्नित किए जाते हैं। सिंक्रोनाइज़ेशन पिछले सिंक्रोनाइज़ेशन की तुलना में बाद में टाइमस्टैम्प के साथ सभी डेटा को स्थानांतरित करके आगे बढ़ता है।
 * गणितीय तुल्यकालन: इस मामले में डेटा को गणितीय वस्तुओं के रूप में माना जाता है और तुल्यकालन एक गणितीय प्रक्रिया से मेल खाता है।

ऑर्डर किया गया डेटा
इस मामले में, दो दूरस्थ तार $$\sigma_A$$ और $$\sigma_B$$ सामंजस्य बिठाने की जरूरत है. आमतौर पर, यह माना जाता है कि ये स्ट्रिंग्स एक निश्चित संख्या में संपादन (यानी चरित्र सम्मिलन, विलोपन या संशोधन) तक भिन्न होती हैं। फिर डेटा सिंक्रोनाइज़ेशन बीच की संपादन दूरी को कम करने की प्रक्रिया है $$\sigma_A$$ और $$\sigma_B$$, शून्य की आदर्श दूरी तक। यह सभी फ़ाइल सिस्टम आधारित सिंक्रोनाइज़ेशन (जहां डेटा ऑर्डर किया गया है) में लागू किया जाता है। इसके कई डेटा सिंक्रनाइज़ेशन#व्यावहारिक समाधानों पर ऊपर चर्चा या संदर्भ दिया गया है।

कभी-कभी समस्या को डब्ल्यू-शिंग्लिंग (स्ट्रिंग्स को शिंगल्स में विभाजित करना) नामक प्रक्रिया के माध्यम से अव्यवस्थित डेटा में से एक में बदलना संभव होता है).

त्रुटि प्रबंधन
दोष-सहिष्णु प्रणालियों में, वितरित डेटाबेस को अपने डेटा के (भाग के) नुकसान या भ्रष्टाचार से निपटने में सक्षम होना चाहिए। पहला चरण आम तौर पर प्रतिकृति (कंप्यूटिंग) होता है, जिसमें डेटा की कई प्रतियां बनाना और परिवर्तन किए जाने पर उन सभी को अद्यतित रखना शामिल होता है। हालाँकि, तब यह तय करना आवश्यक है कि किसी उदाहरण के खो जाने या खराब होने पर किस प्रतिलिपि पर भरोसा किया जाए।

सबसे सरल तरीका एक एकल मास्टर उदाहरण रखना है जो सत्य का एकमात्र स्रोत है। इसमें परिवर्तन अन्य उदाहरणों में दोहराया जाता है, और पुराने मास्टर के विफल होने पर उन उदाहरणों में से एक नया मास्टर बन जाता है।

पैक्सोस (कंप्यूटर विज्ञान) और राफ्ट (कंप्यूटर विज्ञान) अधिक जटिल प्रोटोकॉल हैं जो फेलओवर के दौरान क्षणिक प्रभाव वाली समस्याओं को हल करने के लिए मौजूद हैं, जैसे कि दो उदाहरण सोचते हैं कि वे एक ही समय में मास्टर हैं।

यदि संपूर्ण नोड्स की विफलताएं बहुत आम हैं तो गुप्त साझाकरण उपयोगी है। यह एक स्पष्ट पुनर्प्राप्ति प्रक्रिया से सिंक्रनाइज़ेशन को प्रत्येक रीड का हिस्सा बनाता है, जहां कुछ डेटा को पढ़ने के लिए कई अलग-अलग नोड्स से एन्कोडेड डेटा को पुनर्प्राप्त करने की आवश्यकता होती है। यदि कुछ नोड्स पर भ्रष्ट या पुराना डेटा मौजूद हो सकता है, तो यह दृष्टिकोण त्रुटि सुधार कोड के उपयोग से भी लाभान्वित हो सकता है।

वितरित हैश तालिका और ब्लॉकचेन कई नोड्स (सैकड़ों से अरबों) के बीच सिंक्रनाइज़ेशन की समस्या को हल करने का प्रयास करते हैं।

यह भी देखें

 * SyncML, मुख्य रूप से कैलेंडर, संपर्क और ईमेल सिंक्रनाइज़ेशन के लिए एक मानक
 * तुल्यकालन (कंप्यूटर विज्ञान)