2009-03-25 10 views
6

मैं सर्वर और वितरित ग्राहकों के बीच डेटा सिंक्रनाइज़ेशन को लागू करने के लिए देख रहा हूं। सर्वर पर डेटा स्रोत शीर्ष पर django के साथ mysql है। ग्राहक भिन्न हो सकता है। अपडेट क्लाइंट या सर्वर पर हो सकते हैं, और सर्वर और क्लाइंट के बीच कनेक्शन विश्वसनीय नहीं है (उदाहरण के लिए डिस्कनेक्ट किए गए सेल फोन पर परिवर्तन किए जा सकते हैं, जब सेल फोन में कनेक्शन होता है तो सिंक हो जाना चाहिए)।सर्वर <-> डिवाइस के लिए डेटा सिंक्रनाइज़ेशन फ्रेमवर्क/एल्गोरिदम?

एस लॉट this question में एक संस्करण नियंत्रण डिजाइन पैटर्न का उपयोग करने का सुझाव देता है, जो समझ में आता है। मैं सोच रहा हूं कि इसमें कोई मौजूदा पैकेज/कार्यान्वयन है जिसका मैं उपयोग कर सकता हूं। या, क्या मुझे सीधे svn/git/etc का उपयोग करना चाहिए?

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

उत्तर

0

आप इस लिंक उपयोगी हो सकते हैं: http://pdis.hiit.fi/pdis/download/

यह व्यक्तिगत वितरित सूचना संग्रह (PDIS) परियोजना डाउनलोड पृष्ठ है, और कुछ प्रासंगिक अजगर संकुल बाहर सूचीबद्ध करता है।

1

शायद सादे पुराने rsync का उपयोग करना पर्याप्त है।

1

AFAIK मुख्य रूप से सिंक्रनाइज़ेशन के लिए विविध आवश्यकताओं के कारण इसका कोई सामान्य समाधान नहीं है।

हमारी पिछली परियोजनाओं में से एक में हमने Spring batching आधारित सिंक तंत्र लागू किया जो प्रत्येक तालिका (जो सिंक में भाग लेता है) पर अंतिम अद्यतन टाइमस्टैम्प फ़ील्ड पर निर्भर करता है।

मैंने SyncML के बारे में सुना है लेकिन इसके साथ अधिक अनुभव नहीं है।

यदि आपके पास एक सर्वर और एकाधिक ग्राहक हैं, तो आप एक जेएमएस आधारित दृष्टिकोण के बारे में सोच सकते हैं। डेटा को बंडल किया गया है और पंक्तियों (या विषयों) में रखा गया है और ग्राहकों द्वारा खींचा जाएगा।

आपके मामले में, चूंकि अद्यतन द्वि-दिशात्मक हैं, इसलिए आपको संघर्ष पहचान को भी संभालने की आवश्यकता है। यह अतिरिक्त जटिलताओं लाता है।

संबंधित मुद्दे

 संबंधित मुद्दे