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

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

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

फ़ाइल-बेस्ड सलूशन
फ़ाइल सिंक्रनाइज़ेशन, वर्जन कण्ट्रोल (सीवीएस, सबवर्सन, आदि आदि), डिस्ट्रिब्यूटेड फ़ाइल सिस्टम (कोडा, आदि), और मिरर वेबसाइट (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, मुख्य रूप से कैलेंडर, कांटेक्ट और ईमेल सिंक्रनाइज़ेशन के लिए एक स्टैण्डर्ड है
 * सिंक्रोनाइज़ेशन (कंप्यूटर विज्ञान)