डेटा सिंक्रनाइज़ेशन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Consistency among data between source and target data stores}}
{{Short description|Consistency among data between source and target data stores}}
डेटा सिंक्रोनाइज़ेशन स्रोत और लक्ष्य डेटा स्टोर के बीच [[संगति (डेटाबेस सिस्टम)]] स्थापित करने और समय के साथ डेटा के निरंतर सामंजस्य स्थापित करने की प्रक्रिया है। यह फ़ाइल सिंक्रोनाइज़ेशन और मोबाइल डिवाइस सिंक्रोनाइज़ेशन सहित विभिन्न प्रकार के अनुप्रयोगों के लिए मौलिक है।
'''डेटा सिंक्रोनाइज़ेशन''' सोर्स और टारगेट डेटा स्टोर के मध्य [[संगति (डेटाबेस सिस्टम)|कंसिस्टेंसी]] स्थापित करने और समय के साथ डेटा के निरंतर हार्मोनाइजेशन स्थापित करने का प्रोसेस है। यह फ़ाइल सिंक्रोनाइज़ेशन और मोबाइल डिवाइस सिंक्रोनाइज़ेशन इन्क्लुडिंग विभिन्न प्रकार के अनुप्रयोगों के लिए फंडामेंटल है।


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


==फ़ाइल-आधारित समाधान==
==फ़ाइल-बेस्ड सलूशन==


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


* फ़ाइल सिंक्रनाइज़ेशन का उपयोग आमतौर पर बाहरी [[हार्ड ड्राइव]] पर होम बैकअप या [[यूएसबी फ्लैश ड्राइव]] पर ट्रांसपोर्ट के लिए अपडेट करने के लिए किया जाता है। स्वचालित प्रक्रिया पहले से ही समान फ़ाइलों की प्रतिलिपि बनाने से रोकती है, इस प्रकार मैन्युअल प्रतिलिपि के सापेक्ष काफी समय बचा सकती है, साथ ही तेज़ और कम त्रुटि प्रवण होती है।<ref>{{cite web |author=A. Tridgell|author-link=Andrew Tridgell |title=सॉर्टिंग और सिंक्रनाइज़ेशन के लिए कुशल एल्गोरिदम|url=http://samba.org/~tridge/phd_thesis.pdf |date=February 1999 |version=PhD thesis |publisher=The Australian National University}}</ref>
* फ़ाइल सिंक्रनाइज़ेशन का उपयोग सामान्यतः बाहरी [[हार्ड ड्राइव]] पर होम बैकअप या [[यूएसबी फ्लैश ड्राइव]] पर ट्रांसपोर्ट के लिए अपडेट करने के लिए किया जाता है। आटोमेटिक प्रोसेस पहले से ही इडेंटिकल फ़ाइलों की कॉपी बनाने से रोकती है, इस प्रकार मैन्युअल कॉपी के रिलेटिव अधिक समय बचा सकती है, साथ ही फ़ास्ट और लेस एरर प्रोनहोती है।<ref>{{cite web |author=A. Tridgell|author-link=Andrew Tridgell |title=सॉर्टिंग और सिंक्रनाइज़ेशन के लिए कुशल एल्गोरिदम|url=http://samba.org/~tridge/phd_thesis.pdf |date=February 1999 |version=PhD thesis |publisher=The Australian National University}}</ref>
* संस्करण नियंत्रण उपकरण का उद्देश्य उन स्थितियों से निपटना है जहां एक से अधिक उपयोगकर्ता एक ही फ़ाइल को एक साथ संशोधित करने का प्रयास करते हैं, जबकि फ़ाइल सिंक्रोनाइज़र उन स्थितियों के लिए अनुकूलित होते हैं जहां एक समय में फ़ाइल की केवल एक प्रति संपादित की जाएगी। इस कारण से, हालांकि संस्करण नियंत्रण उपकरण का उपयोग फ़ाइल सिंक्रनाइज़ेशन के लिए किया जा सकता है, समर्पित कार्यक्रमों को कम [[कम्प्यूटेशनल ओवरहेड]] की आवश्यकता होती है।
* वर्जन कण्ट्रोल टूल्स का उद्देश्य उन स्थितियों से डील करना है जहां एक से अधिक यूजर एक ही फ़ाइल को एक साथ संशोधित करने का प्रयास करते हैं, जबकि फ़ाइल सिंक्रोनाइज़र उन सिचुएशन के लिए ऑप्टीमाइज़्ड होते हैं जहां एक समय में फ़ाइल की मात्र एक कॉपी एडिट की जाएगी। इस कारण से, यघपि वर्जन कण्ट्रोल टूल्स का उपयोग फ़ाइल सिंक्रनाइज़ेशन के लिए किया जा सकता है, डेडिकेटेड फंक्शन को कम [[कम्प्यूटेशनल ओवरहेड]] की आवश्यकता होती है।
* वितरित फ़ाइल सिस्टम को यह सुनिश्चित करने के रूप में भी देखा जा सकता है कि फ़ाइल के कई संस्करण सिंक्रनाइज़ हैं। इसके लिए आम तौर पर आवश्यक है कि फ़ाइलों को संग्रहीत करने वाले उपकरण हमेशा जुड़े रहें, लेकिन कुछ वितरित फ़ाइल सिस्टम जैसे कोडा (फ़ाइल सिस्टम) डिस्कनेक्ट किए गए ऑपरेशन के बाद सामंजस्य की अनुमति देते हैं। वितरित फ़ाइल सिस्टम की विलय सुविधाएं आम तौर पर संस्करण नियंत्रण प्रणाली की तुलना में अधिक सीमित होती हैं क्योंकि अधिकांश फ़ाइल सिस्टम संस्करण ग्राफ़ नहीं रखते हैं।
* डिस्ट्रिब्यूटेड फ़ाइल सिस्टम को यह सुनिश्चित करने के रूप में भी देखा जा सकता है कि फ़ाइल के कई वर्जन सिंक्रनाइज़ होते हैं। इसके लिए सामान्यतःआवश्यक है कि फ़ाइलों को स्टोर करने वाले टूल्स सदैव जुड़े रहें, परन्तु कुछ डिस्ट्रिब्यूटेड फ़ाइल सिस्टम जैसे कोडा (फ़ाइल सिस्टम) डिस्कनेक्ट किए गए ऑपरेशन के बाद रेकन्सीलिएशन की अनुमति देते हैं। डिस्ट्रिब्यूटेड फ़ाइल सिस्टम की मार्जिन सुविधाएं सामान्यतःवर्जन कण्ट्रोल सिस्टम की तुलना में अधिक लिमिट होती हैं क्योंकि अधिकांश फ़ाइल सिस्टम वर्जन ग्राफ़ नहीं रखते हैं।
* मिरर वेबसाइट|मिरर (कंप्यूटिंग): मिरर एक डेटा सेट की एक सटीक प्रतिलिपि है। इंटरनेट पर, एक मिरर साइट किसी अन्य इंटरनेट साइट की हूबहू प्रतिलिपि होती है। मिरर साइटों का उपयोग आमतौर पर एक ही जानकारी के कई स्रोत प्रदान करने के लिए किया जाता है, और बड़े डाउनलोड तक विश्वसनीय पहुंच प्रदान करने के तरीके के रूप में ये विशेष महत्व की हैं।
* मिरर (कंप्यूटिंग): मिरर एक डेटा सेट की एक एक्साक्ट कॉपी होती है। इंटरनेट पर, एक मिरर साइट किसी अन्य इंटरनेट साइट की एक्साक्ट कॉपी होती है। मिरर साइटों का उपयोग सामान्यतः एक ही जानकारी के कई सोर्स प्रदान करने के लिए किया जाता है, और बड़े डाउनलोड तक रिलाएबल एक्सेस प्रदान करने के वेज़ के रूप में ये पर्टिकुलर वैल्यू होती हैं।


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


===अनियंत्रित डेटा===
===अनऑर्डर्ड डेटा===
अव्यवस्थित डेटा को सिंक्रनाइज़ करने की समस्या (जिसे सेट सुलह समस्या के रूप में भी जाना जाता है) को [[सममित अंतर]] की गणना करने के प्रयास के रूप में तैयार किया गया है
अनऑर्डर्ड डेटा को सिंक्रनाइज़ करने की प्रॉब्लम (जिसे सेट रेकन्सीलिएशन प्रॉब्लम के रूप में भी जाना जाता है) को [[सममित अंतर|सिमेट्रिक डिफरेंस]] <math>S_A \oplus S_B = (S_A - S_B) \cup (S_B - S_A)</math> रिमोट सेटों के मध्य <math>S_A</math>और <math>S_B</math> बी-बिट संख्याओं की गणना करने के प्रयास के रूप में तैयार किया जाता है। ।<ref name="minksy-trachtenberg-zippel">
<math>S_A \oplus S_B = (S_A - S_B) \cup (S_B - S_A)</math> दो दूरस्थ सेटों के बीच <math>S_A</math>
और <math>S_B</math> बी-बिट संख्याओं का।<ref name="minksy-trachtenberg-zippel">
{{cite journal
{{cite journal
  | author = Minsky, Y.
  | author = Minsky, Y.
Line 32: Line 30:
  | pages = 2213–2218
  | pages = 2213–2218
  | doi = 10.1109/TIT.2003.815784
  | doi = 10.1109/TIT.2003.815784
  |citeseerx=10.1.1.73.5806 }}</ref> इस समस्या के कुछ समाधान इस प्रकार बताए गए हैं:
  |citeseerx=10.1.1.73.5806 }}</ref> इस प्रॉब्लम के कुछ सलूशन इस प्रकार बताए गए हैं:


;थोक स्थानांतरण: इस मामले में सभी डेटा को स्थानीय तुलना के लिए एक होस्ट में स्थानांतरित किया जाता है।
;होलसेल ट्रांसफर: इस केस में सभी डेटा को लोकल तुलना के लिए एक होस्ट में होलसेल किया जाता है।
;टाइमस्टैंप सिंक्रनाइज़ेशन: इस मामले में डेटा में सभी परिवर्तन टाइमस्टैंप के साथ चिह्नित किए जाते हैं। सिंक्रोनाइज़ेशन पिछले सिंक्रोनाइज़ेशन की तुलना में बाद में टाइमस्टैम्प के साथ सभी डेटा को स्थानांतरित करके आगे बढ़ता है।<ref>{{Cite web |url=http://www.pumatech.com/enterprise/wp-1.html |title=पाम डेवलपर नॉलेजबेस मैनुअल|access-date=2007-01-09 |archive-url=https://web.archive.org/web/20020311145325/http://www.pumatech.com/enterprise/wp-1.html |archive-date=2002-03-11 |url-status=dead }}</ref>
;टाइमस्टैंप सिंक्रनाइज़ेशन: इस केस में डेटा में सभी परिवर्तन टाइमस्टैंप के साथ मर्केड किए जाते हैं। सिंक्रोनाइज़ेशन पिछले सिंक्रोनाइज़ेशन की तुलना में पश्चात् में टाइमस्टैम्प के साथ सभी डेटा को ट्रांसफर करके आगे बढ़ता है।<ref>{{Cite web |url=http://www.pumatech.com/enterprise/wp-1.html |title=पाम डेवलपर नॉलेजबेस मैनुअल|access-date=2007-01-09 |archive-url=https://web.archive.org/web/20020311145325/http://www.pumatech.com/enterprise/wp-1.html |archive-date=2002-03-11 |url-status=dead }}</ref>
;गणितीय तुल्यकालन: इस मामले में डेटा को गणितीय वस्तुओं के रूप में माना जाता है और तुल्यकालन एक गणितीय प्रक्रिया से मेल खाता है।<ref name="minksy-trachtenberg-zippel"/><ref>{{cite conference |author=Ari Trachtenberg |author-link=Ari Trachtenberg |author2=D. Starobinski |author3=S. Agarwal |title=विशेषता बहुपद इंटरपोलेशन का उपयोग करके तेज़ पीडीए सिंक्रनाइज़ेशन|book-title=IEEE INFOCOM 2002 |doi=10.1109/INFCOM.2002.1019402 |url=http://people.bu.edu/staro/infocom02pda.pdf }}</ref><ref>Y. Minsky and A. Trachtenberg, Scalable set reconciliation, Allerton Conference on Communication, Control, and Computing, Oct. 2002</ref>
;मैथमेटिकल सिंक्रनाइज़ेशन: इस केस में डेटा को मैथमेटिकल वस्तुओं के रूप में माना जाता है और सिंक्रोनाइज़ेशन एक मैथमेटिकल प्रोसेस से मैच करता है।<ref name="minksy-trachtenberg-zippel"/><ref>{{cite conference |author=Ari Trachtenberg |author-link=Ari Trachtenberg |author2=D. Starobinski |author3=S. Agarwal |title=विशेषता बहुपद इंटरपोलेशन का उपयोग करके तेज़ पीडीए सिंक्रनाइज़ेशन|book-title=IEEE INFOCOM 2002 |doi=10.1109/INFCOM.2002.1019402 |url=http://people.bu.edu/staro/infocom02pda.pdf }}</ref><ref>Y. Minsky and A. Trachtenberg, Scalable set reconciliation, Allerton Conference on Communication, Control, and Computing, Oct. 2002</ref>


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


कभी-कभी समस्या को डब्ल्यू-शिंग्लिंग (स्ट्रिंग्स को शिंगल्स में विभाजित करना) नामक प्रक्रिया के माध्यम से अव्यवस्थित डेटा में से एक में बदलना संभव होता है).<ref>{{cite journal |author=S. Agarwal |author2=V. Chauhan |author3=Ari Trachtenberg |author3-link=Ari Trachtenberg |date=November 2006 |title=पहेलियों का उपयोग करके बैंडविड्थ कुशल स्ट्रिंग सामंजस्य|journal=IEEE Transactions on Parallel and Distributed Systems |volume=17 |issue=11 |pages=1217–1225 |doi=10.1109/TPDS.2006.148 |s2cid=4300693 |url=http://ipsit.bu.edu/documents/puzzles_journal.pdf |access-date=2007-05-23 }}</ref>
कभी-कभी प्रॉब्लम को डब्ल्यू-शिंग्लिंग (स्ट्रिंग्स को शिंगल्स में स्प्लिट करना) नामक प्रोसेस के माध्यम से अनऑर्डर्ड डेटा में से एक में बदलना पॉसिबल होता है)<ref>{{cite journal |author=S. Agarwal |author2=V. Chauhan |author3=Ari Trachtenberg |author3-link=Ari Trachtenberg |date=November 2006 |title=पहेलियों का उपयोग करके बैंडविड्थ कुशल स्ट्रिंग सामंजस्य|journal=IEEE Transactions on Parallel and Distributed Systems |volume=17 |issue=11 |pages=1217–1225 |doi=10.1109/TPDS.2006.148 |s2cid=4300693 |url=http://ipsit.bu.edu/documents/puzzles_journal.pdf |access-date=2007-05-23 }}</ref>


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


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


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


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


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


==यह भी देखें==
==यह भी देखें==


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


== संदर्भ ==
== संदर्भ ==

Revision as of 11:39, 7 August 2023

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

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

फ़ाइल-बेस्ड सलूशन

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

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

थ्योरेटिकल मॉडल

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

अनऑर्डर्ड डेटा

अनऑर्डर्ड डेटा को सिंक्रनाइज़ करने की प्रॉब्लम (जिसे सेट रेकन्सीलिएशन प्रॉब्लम के रूप में भी जाना जाता है) को सिमेट्रिक डिफरेंस रिमोट सेटों के मध्य और बी-बिट संख्याओं की गणना करने के प्रयास के रूप में तैयार किया जाता है। ।[2] इस प्रॉब्लम के कुछ सलूशन इस प्रकार बताए गए हैं:

होलसेल ट्रांसफर
इस केस में सभी डेटा को लोकल तुलना के लिए एक होस्ट में होलसेल किया जाता है।
टाइमस्टैंप सिंक्रनाइज़ेशन
इस केस में डेटा में सभी परिवर्तन टाइमस्टैंप के साथ मर्केड किए जाते हैं। सिंक्रोनाइज़ेशन पिछले सिंक्रोनाइज़ेशन की तुलना में पश्चात् में टाइमस्टैम्प के साथ सभी डेटा को ट्रांसफर करके आगे बढ़ता है।[3]
मैथमेटिकल सिंक्रनाइज़ेशन
इस केस में डेटा को मैथमेटिकल वस्तुओं के रूप में माना जाता है और सिंक्रोनाइज़ेशन एक मैथमेटिकल प्रोसेस से मैच करता है।[2][4][5]

ऑर्डर किया गया डेटा

इस केस में, दो रिमोट स्ट्रिंग और रेकन्साइल की जरूरत होती है। सामान्यतः, यह माना जाता है कि ये स्ट्रिंग्स एक निश्चित संख्या में एडिट्स (अर्थात् करैक्टर इंसर्शन, डिलेटेशन या मॉडिफिकेशन) तक भिन्न होती हैं। फिर डेटा सिंक्रोनाइज़ेशन मध्य की एडिट डिस्टेंस और के मध्य कम करने का, जीरो की आइडियल दूरी तक का प्रोसेस होता है। यह सभी फ़ाइल सिस्टम बेस्ड सिंक्रोनाइज़ेशन (जहां डेटा ऑर्डर किया गया है) में अप्लाई किया जाता है। इसके कई डेटा सिंक्रनाइज़ेशन प्रैक्टिकल एप्लीकेशन पर ऊपर डिस्कस या रिरेन्स दिया गया है।

कभी-कभी प्रॉब्लम को डब्ल्यू-शिंग्लिंग (स्ट्रिंग्स को शिंगल्स में स्प्लिट करना) नामक प्रोसेस के माध्यम से अनऑर्डर्ड डेटा में से एक में बदलना पॉसिबल होता है)। [6]

एरर हैंडलिंग

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

सबसे सरल एप्रोच एक सिंगल मास्टर इंस्टैंस है जो ट्रू का सोल सोर्स होता है। इसमें परिवर्तन अन्य उदाहरणों में रेप्लिकेट किया जाता है, और ओल्ड मास्टर के विफल होने पर उन उदाहरणों में से एक न्यू मास्टर बन जाता है।

पैक्सोस और राफ्ट अधिक काम्प्लेक्स प्रोटोकॉल होते हैं जो फेलओवर के समय ट्रांसिएंट इफेक्ट्स वाली प्रॉब्लम को सॉल्व करने के लिए होती हैं, जैसे कि दो इंस्टैंस थिंक करते हैं कि वे एक ही समय में मास्टर हैं।

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

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

यह भी देखें

संदर्भ

  1. A. Tridgell (February 1999). "सॉर्टिंग और सिंक्रनाइज़ेशन के लिए कुशल एल्गोरिदम" (PDF). PhD thesis. The Australian National University.
  2. 2.0 2.1 Minsky, Y.; Ari Trachtenberg; Zippel, R. (2003). "Set reconciliation with nearly optimal communication complexity". IEEE Transactions on Information Theory. 49 (9): 2213–2218. CiteSeerX 10.1.1.73.5806. doi:10.1109/TIT.2003.815784.
  3. "पाम डेवलपर नॉलेजबेस मैनुअल". Archived from the original on 2002-03-11. Retrieved 2007-01-09.
  4. Ari Trachtenberg; D. Starobinski; S. Agarwal. "विशेषता बहुपद इंटरपोलेशन का उपयोग करके तेज़ पीडीए सिंक्रनाइज़ेशन" (PDF). IEEE INFOCOM 2002. doi:10.1109/INFCOM.2002.1019402.
  5. Y. Minsky and A. Trachtenberg, Scalable set reconciliation, Allerton Conference on Communication, Control, and Computing, Oct. 2002
  6. S. Agarwal; V. Chauhan; Ari Trachtenberg (November 2006). "पहेलियों का उपयोग करके बैंडविड्थ कुशल स्ट्रिंग सामंजस्य" (PDF). IEEE Transactions on Parallel and Distributed Systems. 17 (11): 1217–1225. doi:10.1109/TPDS.2006.148. S2CID 4300693. Retrieved 2007-05-23.