उत्पादन में MongoDB परिनियोजन केवल तभी काम कर सकता है जब सही परिनियोजन पैटर्न का पालन किया जाए। एकल होस्ट में प्रतिकृति सेट को परिनियोजित करना डेटा की उच्च उपलब्धता की गारंटी नहीं देता है। बड़े डेटा से निपटने के लिए व्यापक शोध और इष्टतम कार्यान्वयन की आवश्यकता होती है, या तो उपलब्ध विकल्पों को मिलाकर या उच्चतम आशाजनक लाभों वाले एक को चुनकर।
MongoDB के लिए परिनियोजन पैटर्न में शामिल हैं:
- तीन सदस्य प्रतिकृति सेट
- दो या अधिक डेटा केंद्रों में वितरित प्रतिकृति सेट।
तीन सदस्य प्रतिकृति सेट
प्रतिकृति MongoDB के लिए एक स्केलिंग रणनीति है जो डेटा की उच्च उपलब्धता को बढ़ाती है। एक प्रतिकृति सेट में शामिल है:
- एक प्राथमिक नोड:सभी लेखन थ्रूपुट संचालन के लिए ज़िम्मेदार है और इसे पढ़ा भी जा सकता है।
- सेकेंडरी नोड्स:केवल पढ़ने के संचालन के लिए इस्तेमाल किया जा सकता है, लेकिन मौजूदा एक के विफल होने की स्थिति में प्राथमिक के लिए चुना जा सकता है। वे अपने डेटा अपडेट सेट के प्राथमिक सदस्य द्वारा उत्पन्न एक ओप्लॉग से प्राप्त करते हैं।
- आर्बिटर। प्रतिकृति सेट सदस्यों की एक समान संख्या होने की स्थिति में प्राथमिक के चुनाव की सुविधा के लिए उपयोग किया जाता है। यह डेटा की किसी भी प्रति को होस्ट नहीं करता है।
प्रतिकृति सेट के लाभ केवल निम्नलिखित आर्किटेक्चर वाले न्यूनतम तीन सदस्यों के साथ प्राप्त किए जा सकते हैं:
प्राथमिक-माध्यमिक-माध्यमिक
यह सबसे अधिक अनुशंसित है क्योंकि इसमें अधिक दोष सहिष्णुता है और लागत जैसे तीसरे डेटा असर सदस्य को जोड़ने की सीमाओं को संबोधित करता है।
यह परिनियोजन प्राथमिक डेटा के अलावा हमेशा दो पूर्ण प्रतियां प्रदान करेगा इसलिए उच्च उपलब्धता सुनिश्चित करता है। प्राथमिक की विफलता एक नए प्राथमिक का चुनाव करने के लिए प्रतिकृति सेट को ट्रिगर करेगी और सेवा संचालन सामान्य रूप से फिर से शुरू हो जाएगा। यदि पुराना प्राथमिक सक्रिय हो जाता है तो उसे द्वितीयक सदस्य के रूप में वर्गीकृत किया जाएगा।
चुनाव प्रक्रिया के दौरान, सदस्य दिल की धड़कन के माध्यम से एक दूसरे को संकेत देते हैं और इस दौरान कोई लेखन कार्य नहीं हो रहा है
चुनाव प्रक्रिया के बाद हम इस संरचना में सुधार की कल्पना करते हैं:
प्राथमिक-माध्यमिक-मध्यस्थ
यह सुनिश्चित करता है कि प्रतिकृति सेट उपलब्ध रहे, भले ही प्राथमिक या माध्यमिक अनुपलब्ध हो, माध्यमिक से प्राथमिक की चुनाव प्रक्रिया को सुविधाजनक बनाकर। मध्यस्थ डेटा की कोई प्रति नहीं रखते हैं इसलिए प्रबंधन के लिए कम संसाधनों की आवश्यकता होती है।
इस परिनियोजन के साथ एक सीमा है; कोई अतिरेक नहीं है क्योंकि केवल दो डेटा असर वाले सदस्य हैं:प्राथमिक और द्वितीयक। इसका परिणाम कम दोष सहनशीलता में होता है।
गलती सहनशीलता सुनिश्चित करने में सक्षम होना चाहिए:
- उपलब्धता लिखें: मतदान प्रतिकृति सेट के अधिकांश सदस्यों को प्राथमिक को बनाए रखने या चुनने के लिए आवश्यक है जो लेखन कार्यों के लिए जिम्मेदार है।
- डेटा अतिरेक:रोलबैक से बचने के लिए कई सदस्यों द्वारा लेखन को स्वीकार किया जा सकता है
प्राथमिक-माध्यमिक-आर्बिटर कॉन्फ़िगरेशन केवल लेखन उपलब्धता पहलू का समर्थन करता है जैसे कि यदि सेट का एक भी सदस्य अनुपलब्ध है तो भी प्राथमिक को बनाए रखा जा सकता है।
हालांकि, दूसरे पहलू का समर्थन करने में विफलता के परिणामस्वरूप कुछ परिचालन परिणाम होते हैं यदि द्वितीयक सदस्य अनुपलब्ध हो जाता है:
- कोई सक्रिय प्रतिकृति नहीं होगी, खासकर यदि माध्यमिक लंबे समय तक ऑफ़लाइन है। जब सेकेंडरी बहुत लंबे समय तक ऑफ़लाइन रहता है, तो यह ओप्लॉग से गिर सकता है, जिससे किसी को पुनरारंभ के दौरान इसे फिर से सिंक करना पड़ सकता है।
- डेटा अतिरेक को केवल वर्तमान प्राथमिक द्वारा ही लिखने के संचालन को स्वीकार करने के लिए मजबूर किया जाएगा।
- अधिकांश चिंता का विकल्प कनेक्टेड एप्लिकेशन और आंतरिक प्रक्रियाओं को नवीनतम डेटा प्रदान नहीं करेगा। ऐसा तब होता है जब आपका कॉन्फ़िगरेशन लिखने की अपेक्षा करता है कि वह बहुसंख्यक पावती का अनुरोध करे, इसलिए डेटा वाले अधिकांश सदस्य उपलब्ध होने तक अवरुद्ध हो जाते हैं।
- अगर रेप्लिका सेट शार्प किए गए क्लस्टर का हिस्सा है, तो शार्क के बीच चंक माइग्रेशन से भी समझौता किया जाएगा।
- अगर रोलबैक होता है और बहुमत प्रतिबद्ध बिंदु उन्नत नहीं किया जा सकता है तो WiredTiger स्टोरेज इंजन कैश पर दबाव।
इन परिणामों से बचने के लिए, कोई व्यक्ति प्राथमिक-माध्यमिक-माध्यमिक कॉन्फ़िगरेशन का विकल्प चुन सकता है क्योंकि यह दोष सहनशीलता को बढ़ाता है।
नोट:दोष सहिष्णुता केवल विफलता के मामले में ही नहीं आती है, बल्कि कुछ सिस्टम संचालन जैसे सॉफ़्टवेयर अपग्रेड और सामान्य रखरखाव किसी सदस्य को कुछ समय के लिए अनुपलब्ध रहने के लिए बाध्य कर सकते हैं।
दो या अधिक डेटा केंद्रों में वितरित प्रतिकृति सेट
भौगोलिक दृष्टि से भिन्न डेटा केंद्रों में प्रतिकृति सेट सदस्यों को वितरित करके उच्च उपलब्धता को दूसरे स्तर तक बढ़ाया जा सकता है। यह दृष्टिकोण किसी भी डेटा केंद्र के अनुपलब्ध होने की स्थिति में उच्च दोष सहिष्णुता सुनिश्चित करने के अलावा अतिरेक को बढ़ाएगा।
यदि सभी सदस्य एक ही डेटा केंद्र में स्थित हैं, तो प्रतिकृति सेट डेटा केंद्र की विफलताओं जैसे नेटवर्क ट्रांज़िएंट और पावर आउटेज के लिए अतिसंवेदनशील है।
वैकल्पिक डेटा केंद्र में कम से कम एक सदस्य को रखने की सलाह दी जाती है, विषम संख्या में डेटा केंद्रों का उपयोग करें और उन सदस्यों के वितरण का चयन करें जो चुनाव के लिए बहुमत की पेशकश करेंगे या कम से कम विफलता के मामले में डेटा की एक प्रति प्रदान करेंगे।
कॉन्फ़िगरेशन को यह सुनिश्चित करना चाहिए कि यदि कोई डेटा केंद्र नीचे चला जाता है, तो प्रतिकृति सेट लिखने योग्य रहता है क्योंकि शेष सदस्य चुनाव कर सकते हैं।
अपना डेटा कम से कम तीन डेटा केंद्रों में वितरित करें।
सदस्य संसाधनों तक सीमित हो सकते हैं या उनके पास नेटवर्क प्रतिबंध हो सकते हैं, जिससे वे विफलता के मामले में प्राथमिक बनने के लिए अनुपयुक्त हो जाते हैं। आप इन सदस्यों को 0 प्राथमिकता देकर प्राथमिक न बनने के लिए कॉन्फ़िगर कर सकते हैं।
डेटा सेंटर के सदस्यों को वोटिंग प्राथमिकता देने के लिए अन्य डेटा केंद्रों की तुलना में उच्च प्राथमिकता हो सकती है ताकि वे अन्य डेटा केंद्रों में सदस्यों से पहले प्राथमिक का चुनाव कर सकें।
प्रतिकृति सेट के सभी सदस्यों को एक दूसरे के साथ संवाद करने में सक्षम होना चाहिए।
निष्कर्ष
कई डेटा केंद्रों में सदस्यों को वितरित करके प्रतिकृति लाभों को अधिक आशाजनक स्थिति में बढ़ाया जा सकता है। यह अनिवार्य रूप से डेटा अतिरेक सुनिश्चित करने के अलावा दोष सहिष्णुता को बढ़ाता है। दो या दो से अधिक डेटा केंद्रों में वितरित होने पर प्रतिकृति सेट के सदस्य एकल डेटा केंद्र पर लाभ प्रदान करते हैं जैसे:
यदि डेटा केंद्रों में से कोई एक नीचे चला जाता है, तो डेटा अभी भी पढ़ने के लिए उपलब्ध है, जबकि एकल डेटा केंद्र वितरण के विपरीत।
राइट ऑपरेशंस को तब भी स्वीकार किया जा सकता है जब अल्पसंख्यक सदस्यों वाला डेटा सेंटर डाउन हो जाता है।
पढ़ने का कार्य अभी भी संभव हो सकता है यदि बहुसंख्यक मतदान सदस्यों वाला डेटा केंद्र एकल डेटा केंद्र के मामले के विपरीत नीचे चला जाता है।