5

इस परिदृश्य पर विचार करेंविफल/पुनर्प्राप्त सर्वर के साथ CouchDB प्रतिकृति का व्यवहार कैसे करता है?</p> <p>3 EC2 में स्थित उदाहरणों:

  • अमेरिका-पश्चिम
  • आयरलैंड
  • टोक्यो

प्रत्येक उदाहरण के एक समर्पित CouchDB सर्वर है। प्रत्येक कोच डीबी सर्वर हर दूसरे सर्वर (द्वि-दिशात्मक) के साथ निरंतर प्रतिकृति चलाने के लिए सेटअप किया जाता है।

अब लगता है कि आयरलैंड सर्वर कुछ एडब्ल्यूएस होने के कारण ऑफ़लाइन चला जाता है। यूएस-वेस्ट और टोक्यो कॉच डीबी सर्वर X सर्वर की बार-बार कोशिश करेंगे और फिर अंततः उस सर्वर के साथ प्रतिकृति विफल हो जाएंगे (क्या यह सही है?)

आइए 6 घंटे जाएं और एडब्ल्यूएस क्षेत्र को वापस ऑनलाइन प्राप्त कर लेता है और वह सर्वर वापस आता है अप - मुझे लगता है अमेरिका-पश्चिम और टोक्यो जब तक आयरलैंड में सर्वर पर ध्यान नहीं देगा आयरिश CouchDB सर्वर फिर से शुरू की उन दोनों के साथ द्वि-दिशात्मक सिंक, एक ला:

आयरिश CouchDB _replicator छद्म सेटिंग

  • प्रतिकृति [स्रोत = स्थानीय मेजबान, लक्ष्य = हमें पश्चिम]
  • दोहराने [स्रोत = हमें पश्चिम, लक्ष्य = स्थानीय होस्ट]
  • दोहराने [स्रोत = स्थानीय होस्ट, लक्ष्य = टोक्यो]
  • दोहराने [स्रोत = टोक्यो, लक्ष्य = स्थानीय होस्ट]

Q1: काउच की प्रतिकृति विफलता की मेरी समझ/वसूली सही है?

प्रश्न 2: यदि नेटवर्क विफलता है जो एक घंटे बाद खुद को ठीक करता है (विशेष रूप से: डीबी को स्टार्टअप पर फिर से जोड़ने के लिए मजबूर करने के लिए कोई सर्वर पुनरारंभ नहीं होता है), संबंधित कॉच डीबी उदाहरण इस पर प्रतिक्रिया कैसे करते हैं? मुझे कल्पना है कि हमें-पश्चिम और टोक्यो आयरलैंड के बारे में भूल जाएंगे, लेकिन क्या आयरलैंड अचानक उन दो सर्वरों से बात करना शुरू कर देगा, बिडरेक्शनल, निरंतर प्रतिकृति को फिर से शुरू कर देगा?

मैं विशेष रूप से EC2 वातावरण में विफलता वसूली में दिलचस्पी है, तो अगर वहाँ है कि पर्यावरण मैं चूक के लिए एक विशिष्ट विस्तार है, तो कृपया मुझे बताएं।

धन्यवाद! पहले के 1.1

उत्तर

4

, एक प्रतिकृति कार्य नहीं लगातार, यहाँ तक कि एक सतत एक है। डिस्कनेक्शन की स्थिति में, पुनः प्रयास करने पर सीमित प्रयास है, लेकिन आखिरकार यह बंद हो जाएगा। जब कनेक्टिविटी फिर से शुरू होती है तो आपको दोबारा प्रतिकृति शुरू करने की आवश्यकता होगी। चूंकि प्रतिकृति बेवकूफ है (उसी प्रतिकृति कार्य को दो बार शुरू करना एक बार शुरू होता है), आप इसे हर मिनट शुरू करने के लिए केवल एक cronjob जोड़ सकते हैं (या जो भी अंतराल आपको लगता है)। यदि कार्य पहले से चल रहा है, तो प्रयास सफलता प्राप्त करता है (लेकिन एक और प्रतिकृति शुरू नहीं करता है)।

1.1 में, आप विशेष _replicator डेटाबेस में एक दस्तावेज बनाने के द्वारा लगातार प्रतिकृति कार्य बना सकते हैं। CouchDB इसे क्रैश या कनेक्शन बाधित होने पर पुनः प्रयास करें। नोट: 1.1.0 अंततः अगली रिलीज (1.1.1) में देता है, हम अनंत रिट्रीज़ की अनुमति देते हैं।

CouchDB के रूप में जमीन बहु मास्टर प्रतिकृति का समर्थन करने के से बनाया गया है, तो आप यह है कि यह बहुत अच्छी तरह से कनेक्टिविटी के लिए रुकावट संभालती सुनने के लिए आश्चर्य नहीं होगा। बाधा के दौरान हुए परिवर्तन तेजी से पाए जाते हैं और दोहराए जाते हैं।

+1

रॉबर्ट, यह सिर्फ भयानक है। SimpleDB, Redis और मोंगो इस्तेमाल करने के बाद मैं अचानक प्रतिकृति के साथ काउच जुनून के बारे में पता बन गया है और यह था की तरह एक प्रकाश मेरे सिर में बंद हो गई ... अचानक सभी NoSQL डेटा स्टोर/हठ/सुरक्षा के साथ मेरी समस्या बिंदुओं को दूर गिर गया और मैं चला रहा हूँ इस सीधे आगे, सरल और मजबूत प्रणाली के साथ * बस काम करता है *। स्पष्टीकरण के लिए बहुत बहुत धन्यवाद! –

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