पहली चीज़ जो आपको तय करनी है, वह एक सामान्य नीति है जिसके बारे में परस्पर विरोधी परिवर्तनों के मामले में किस पक्ष को "आधिकारिक" माना जाता है।
Ie: मान लीजिए कि रिकॉर्ड # 125 को सर्वर पर 5 जनवरी को रात 10 बजे और उसी रिकॉर्ड को एक फोन पर बदल दिया जाता है (चलो इसे क्लाइंट ए कहते हैं) 5 जनवरी को 11 बजे। लास्ट सेंचुरी 3 जनवरी को थी। फिर उपयोगकर्ता फिर से कहता है, कहते हैं, 8 जनवरी।
यह समझने की आवश्यकता है कि किस चीज़ को बदलना आसान है, इस अर्थ में कि क्लाइंट और सर्वर दोनों को अंतिम सिंक्रोनाइज़ की तारीख पता है, इसलिए किसी भी चीज़ को बनाया या अपडेट किया गया है (इस बारे में अधिक जानकारी के लिए नीचे देखें) क्योंकि आखिरी सिंक को समेटने की आवश्यकता है।
तो, मान लीजिए कि केवल परिवर्तित रिकॉर्ड # 125 है। आप या तो यह तय करते हैं कि दो में से एक स्वचालित रूप से "जीतता है" और दूसरे को अधिलेखित करता है, या आपको एक सामंजस्यपूर्ण चरण का समर्थन करने की आवश्यकता है जहां उपयोगकर्ता यह तय कर सकता है कि कौन सा संस्करण (सर्वर या क्लाइंट) सही है, दूसरे को अधिलेखित करना।
यह निर्णय बेहद महत्वपूर्ण है और आपको ग्राहकों की "भूमिका" का वजन करना चाहिए। विशेष रूप से यदि क्लाइंट और सर्वर के बीच न केवल एक संभावित संघर्ष है, लेकिन यदि अलग-अलग क्लाइंट एक ही रिकॉर्ड को बदल सकते हैं।
[यह मानते हुए कि # 125 को एक दूसरे क्लाइंट (क्लाइंट B) द्वारा संशोधित किया जा सकता है, एक मौका है कि क्लाइंट B, जो अभी तक सिंक नहीं किया गया है, एक ही रिकॉर्ड का एक और संस्करण प्रदान करेगा, जो पिछले संघर्ष रिज़ॉल्यूशन को मूट बनाता है]
ऊपर " बनाया या अपडेट किया गया " बिंदु के बारे में ... आप किसी रिकॉर्ड को ठीक से कैसे पहचान सकते हैं यदि यह किसी एक क्लाइंट पर उत्पन्न हुआ है (यह मानते हुए कि यह आपकी समस्या डोमेन में है)? मान लीजिए कि आपका ऐप व्यावसायिक संपर्कों की सूची का प्रबंधन करता है। यदि क्लाइंट ए कहता है कि आपको एक नए बनाए गए जॉन स्मिथ को जोड़ना है, और क्लाइंट के पास क्लाइंट डी द्वारा कल बनाया गया जॉन स्मिथ है ... क्या आप दो रिकॉर्ड बनाते हैं क्योंकि आप निश्चित नहीं हो सकते कि वे अलग-अलग व्यक्ति नहीं हैं? क्या आप उपयोगकर्ता से इस संघर्ष को भी समेटने के लिए कहेंगे?
क्या ग्राहकों के पास डेटा के सबसेट का "स्वामित्व" है? I यदि क्लाइंट B क्षेत्र # 5 के लिए डेटा पर "प्राधिकरण" होने के लिए सेटअप है, तो क्या क्लाइंट # क्षेत्र # 5 के लिए रिकॉर्ड संशोधित / बना सकता है या नहीं? (यह कुछ संघर्ष समाधान को आसान बना देगा, लेकिन आपकी स्थिति के लिए प्रतिकूल साबित हो सकता है)।
यह योग करने के लिए मुख्य समस्याएं हैं:
- "पहचान" को कैसे परिभाषित किया जाए, यह देखते हुए कि अलग किए गए क्लाइंट ने नया रिकॉर्ड बनाने से पहले सर्वर तक नहीं पहुंचाया होगा।
- पिछली स्थिति, कोई फर्क नहीं पड़ता कि समाधान कितना परिष्कृत है, जिसके परिणामस्वरूप डेटा दोहराव हो सकता है, इसलिए आपको समय-समय पर इनका समाधान करना चाहिए और ग्राहकों को कैसे सूचित करना चाहिए कि उन्हें "रिकॉर्ड # 675" के रूप में क्या माना जाता है, वास्तव में / सुपारे के साथ विलय कर दिया गया है रिकॉर्ड # 543
- तय करें कि यदि संघर्षों को fiat द्वारा हल किया जाएगा (उदाहरण के लिए "सर्वर संस्करण हमेशा क्लाइंट को ट्रम्प करता है यदि पिछले सिंक के बाद पूर्व को अपडेट किया गया है") या मैनुअल हस्तक्षेप से
- फिएट के मामले में , खासकर यदि आप तय करते हैं कि ग्राहक पूर्वता लेता है, तो आपको इस बात का भी ध्यान रखना होगा कि अन्य लोगों के साथ कैसे व्यवहार किया जाए, न कि अभी तक सिंक किए गए ग्राहकों के लिए जिनमें कुछ और बदलाव आ सकते हैं।
- पिछले आइटम आपके डेटा की बारीकियों को ध्यान में नहीं रखते हैं (क्रम में चीजों को सरल बनाने के लिए)। यह कहने के लिए पर्याप्त है कि "रिकॉर्ड" स्तर पर तर्क करने के बजाय, जैसा कि मेरे उदाहरण में, आपको फ़ील्ड स्तर पर रिकॉर्ड परिवर्तन करने के लिए अधिक उपयुक्त मिल सकता है, बजाय। या अपने समुच्चय को "मेटा रिकॉर्ड" के एक प्रकार के रूप में मानते हुए एक समय में रिकॉर्ड के एक सेट (जैसे व्यक्ति रिकॉर्ड + पता रिकॉर्ड + संपर्क रिकॉर्ड) पर काम करना।
ग्रंथ सूची:
इस पर अधिक, निश्चित रूप से, विकिपीडिया पर ।
Vdirsyncer के लेखक द्वारा एक सरल तुल्यकालन एल्गोरिथ्म
डेटा सिंक पर ओबीजेसी लेख
SyncML®: अपने मोबाइल डेटा को सिंक्रनाइज़ करना और प्रबंधित करना (ओ'रेली सफारी पर बुक करें)
Con fl ict-free प्रतिकृति डेटा प्रकार
आशावादी प्रतिकृति YASUSHI SAITO (HP Laboratories) और MARC SHAPIRO (Microsoft Research Ltd.) - ACM कम्प्यूटिंग सर्वे, वॉल्यूम। वी, नंबर एन, 3 2005।
अलेक्जेंडर ट्रुड, जुएरगेन नागलर-इहलीन, फ्रैंक कर्गल और माइकल वेबर। 2008. पुनरावर्तक SyncML के माध्यम से चक्रीय डेटा तुल्यकालन। मोबाइल डेटा प्रबंधन (MDM '08) पर नौवें अंतर्राष्ट्रीय सम्मेलन की कार्यवाही में। आईईईई कंप्यूटर सोसायटी, वाशिंगटन, डीसी, यूएसए, 165-172। DOI = 10.1109 / MDM.2008.10 http://dx.doi.org/10.1109/MDM.2008.10
Lam, F., Lam, N., और Wong, R. 2002. मोबाइल XML डेटा के लिए कुशल सिंक्रनाइज़ेशन। सूचना और ज्ञान प्रबंधन पर ग्यारहवें अंतर्राष्ट्रीय सम्मेलन की कार्यवाही में (मैकलीन, वर्जीनिया, संयुक्त राज्य अमेरिका, 04 नवंबर - 09, 2002)। CIKM '02। एसीएम, न्यूयॉर्क, एनवाई, 153-160। डीओआई = http://doi.acm.org/10.1145/584792.584820
कुन्हा, पीआर और माईबूम, टीएस 1981। संसाधन और संतुलन; सार डेटा प्रकार + तुल्यकालन - संदेश उन्मुख प्रोग्रामिंग के लिए एक पद्धति -। सॉफ्टवेयर इंजीनियरिंग पर 5 वें अंतरराष्ट्रीय सम्मेलन की कार्यवाही में (सैन डिएगो, कैलिफोर्निया, संयुक्त राज्य अमेरिका, 09 मार्च - 12, 1981)। सॉफ्टवेयर इंजीनियरिंग पर अंतर्राष्ट्रीय सम्मेलन। आईईईई प्रेस, पिसकटावे, एनजे, 263-272।
(अंतिम तीन एसीएम डिजिटल लाइब्रेरी से हैं, कोई भी विचार नहीं है कि क्या आप सदस्य हैं या यदि आप अन्य चैनलों के माध्यम से प्राप्त कर सकते हैं)।
से Dr.Dobbs साइट:
- बिल वैगनर 19 मई, 2004 तक एसक्यूएल सर्वर सीई और एसक्यूएल आरडीए के साथ ऐप बनाना
Arxiv.org से:
- एक संघर्ष-मुक्त प्रतिकृति JSON डेटाटाइप - कागज एक JSON CRDT कार्यान्वयन का वर्णन करता है (संघर्ष-मुक्त प्रतिकृति डेटाैटिप्स - CRDTs - डेटा संरचनाओं का एक परिवार है जो समवर्ती संशोधन का समर्थन करता है और इस तरह के समवर्ती अपडेट की गारंटी देता है)।