2009-09-24 24 views
14

मैं निम्नलिखित चुनौती का सामना कर रहा हूँ में सिंक्रनाइज़:रखते हुए वितरित डेटाबेस एक अस्थिर नेटवर्क

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

इस पर कोई सुझाव है कि मैं इसे कैसे प्राप्त कर सकता हूं।

धन्यवाद।

+0

क्या आप एक उपकरण की तलाश में हैं? एक कस्टम समाधान का विकास? –

उत्तर

8

मुझे किसी भी डेटाबेस से अवगत नहीं है जो आपको यह कार्यक्षमता बॉक्स से बाहर कर देगा; अंतिम स्थिरता और संघर्ष समाधान की आवश्यकता के कारण यहां बहुत जटिलता है (उदाहरण के लिए, यदि नेटवर्क 2 हिस्सों में विभाजित हो जाता है, तो क्या होता है, और आप इसे 123 के मान में अपडेट करते हैं जबकि मैं इसे दूसरी छमाही पर 321 तक अपडेट करता हूं, और फिर नेटवर्क फिर से कनेक्ट हो जाते हैं?)

आपको अपना खुद का रोल करना पड़ सकता है।

ऐसा करने के तरीके, याहू PNUTS प्रणाली के डिजाइन की जाँच पर कुछ विचार के लिए: http://research.yahoo.com/node/2304 और अमेज़न के डायनमो: http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

+0

+1। अच्छे लिंक! – David

+0

याहू पेपर बहुत दिलचस्प है। अपना खुद का समाधान विकसित करने का विचार पहले से ही मेरे दिमाग में था। मुझे डेटाबेस के लिए जीआईटी की तरह कुछ पसंद है – jassuncao

+2

गिट के बारे में बात यह है कि यह विवादित अद्यतन होने पर मैन्युअल विलय करता है। यह आम तौर पर डेटाबेस के लिए व्यवहार्य विकल्प नहीं है .. इसलिए आपको एक स्थिरता मॉडल की आवश्यकता है जो संभवतः कुछ आश्चर्य की ओर ले जाती है। – SquareCog

0

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

सिंक्रनाइज़ किए गए छोटे डेटाबेस का एक समूह रखना सही ढंग से करने के लिए एक काफी जटिल कार्य है। क्या केवल एक केंद्रीकृत डेटाबेस होने की कोई संभावना है, और या तो ग्राहक अनुप्रयोग सीधे उससे जुड़ते हैं या (मेरा पसंदीदा समाधान) क्लाइंट डेटाबेस का समूह होने के बजाय डेटा एक्सेस करने/अपडेट करने के लिए कुछ वेब सेवाएं लिखते हैं?

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

17

यह अनुसंधान के एक काफी स्थापित कोष साथ एक समस्या है (जिनमें से लोगों को जाहिरा तौर पर अनजान है) । मैं को सुझाव देता हूं कि एक गरीब, दोषपूर्ण पहिया को पूरी तरह से जरूरी नहीं है (उदाहरण के लिए, उदाहरण के लिए, एक मामूली समाधान की अनुमति देने के लिए असामान्य आवश्यकताएं)।

कुछ कीवर्ड: replication, mobile DBMSs, distributed disconnected DBMSs

इसके अलावा इन शोध पत्र प्रासंगिक हैं (इस शोध क्षेत्र का एक उदाहरण के रूप में):

  1. Distributed disconnected databases,

... और इतने पर।

+0

जानकारी का महान संग्रह। धन्यवाद। – jassuncao

+0

आपका स्वागत है। – MaD70

3

SymmetricDS देखें। सममित्री वेब-सक्षम, डेटाबेस स्वतंत्र, डेटा सिंक्रनाइज़ेशन/प्रतिकृति सॉफ़्टवेयर है। यह निकट वास्तविक समय में संबंधपरक डेटाबेस के बीच तालिकाओं को दोहराने के लिए वेब और डेटाबेस तकनीकों का उपयोग करता है। सॉफ़्टवेयर को बड़ी संख्या में डेटाबेस के लिए स्केल करने के लिए डिज़ाइन किया गया था, कम बैंडविड्थ कनेक्शन में काम करता था, और नेटवर्क आउटेज की अवधि का सामना करता था।

+0

हाँ। मैंने पहले ही इसे देखा और इसे एक स्पिन दिया। सुंदर भगवान दिखता है। संभवतः उपयोग किया जा रहा है – jassuncao