Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> डेटाबेस

MongoDB स्केलिंग में महारत: बड़े पैमाने पर वृद्धि के लिए एक व्यापक गाइड

मूल रूप से 4 जून, 2018 को ObjectRocket.com/blog पर प्रकाशित

हम स्केलिंग को मछली से स्केल हटाने के रूप में परिभाषित कर सकते हैं। हालांकि, डेटाबेस के साथ, स्केलिंग स्टोरेज, डिस्क, RAM, CPU, कंप्यूट साइकिल, नेटवर्किंग, या अन्य संसाधनों के आसपास अतिरिक्त जरूरतों को पूरा करने के लिए विस्तार करने की क्षमता को संदर्भित करता है।

MongoDB स्केलिंग में महारत: बड़े पैमाने पर वृद्धि के लिए एक व्यापक गाइड

आप कैसे जानते हैं कि स्केल करने का समय कब है?

आज, डेटा की तीव्र वृद्धि और अनुप्रयोगों के लिए तेजी से अपनाने की दर देखना आम है, जैसे कि जब ऐप्स वायरल होने लगते हैं और उपयोग शुरू हो जाता है। जब ऐसा होता है, तो आप अपने प्रारंभिक वातावरण को तेजी से पीछे छोड़ देंगे। वह वृद्धि भौतिक डेटा स्टोरेज जरूरतों, प्रदर्शन हिट्स और गिरावट के कारण हो सकती है जिनके लिए अधिक संसाधनों की आवश्यकता होगी। CPU, RAM, नेटवर्किंग, या उन सभी क्षेत्रों के संयोजन के बारे में सोचें। आप या तो विकास के लिए सक्रिय रूप से योजना बना सकते हैं, या जब आप छोटे प्रदर्शन हिट देखना शुरू करते हैं तो स्केल करना चुन सकते हैं।

सक्रिय रूप से स्केलिंग

कम से कम दो सामान्य पैटर्न हो सकते हैं जब आप सक्रिय रूप से स्केल करने की योजना बनाते हैं:

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

हमारी पोस्ट पढ़ें: अपने MongoDB इंस्टेंस को स्केल करने का सही समय कैसे निर्धारित करें।

प्रतिक्रियात्मक रूप से स्केलिंग

यदि आप बॉटलनेक से टकराते हैं और आप बढ़ते रहने की उम्मीद करते हैं, तो आपको स्केलिंग के बारे में सोचने की जरूरत है।

परेशानी के संकेतों में निम्नलिखित चिंताएं शामिल हैं:

  • एंड-यूजर्स के लिए बढ़ा हुआ क्वेरी समय
  • बढ़ा हुआ लॉगिन समय
  • अनुरोध और सर्वर फ्रीज होना
  • डेवलपर्स से डेटाबेस की शिकायतें
  • धीमी सर्वर प्रतिक्रिया समय
  • होस्ट पर बढ़ा हुआ लोड
  • आउट-ऑफ-मेमोरी त्रुटियां
  • अनपेक्षित चुनाव
  • लॉग में त्रुटियां

जब आप इन संकेतों को देखना शुरू करते हैं, तो मांग को पूरा करने के लिए स्केल करना शुरू करने और यह सुनिश्चित करने का समय आ गया है कि आप ग्राहकों को नहीं खो रहे हैं।

आप वर्टिकली (ऊपर) या हॉरिजॉन्टली (बाहर) स्केल कर सकते हैं

MongoDB स्केलिंग में महारत: बड़े पैमाने पर वृद्धि के लिए एक व्यापक गाइड

वर्टिकल स्केलिंग

यह प्रोवर्बियल बिग आयरन विधि है: ढेर सारे संसाधनों (CPU कोर, उच्च CPU गति, ढेर सारी RAM, स्टोरेज) के साथ एक बड़ी मशीन। वर्टिकल स्केलिंग के मुख्य लाभों में कम आर्किटेक्चरल जटिलता और रखरखाव के लिए कम होस्ट शामिल हैं। यह मददगार है अगर आपके पास रखरखाव को संभालने के लिए कोई नहीं है।

आज वर्टिकल स्केल करने के कई तरीके उपलब्ध हैं। उन विकल्पों में से कुछ में बेहतर कमोडिटी हार्डवेयर, सस्ते डिस्क और स्टोरेज, बेहतर स्टोरेज विकल्प, सस्ती मेमोरी, बेहतर सॉफ्टवेयर, और नेटवर्किंग शामिल हैं ताकि आप फेलओवर और रुकावट को अधिक आसानी से संभाल सकें।

स्केलिंग अप कई अनुप्रयोगों और जरूरतों के लिए आदर्श है, और हम निम्नलिखित खंड में चर्चा किए गए रिप्लिका सेट्स की सलाह देते हैं। एक बात ध्यान में रखने योग्य है कि जब आप बड़े रिप्लिका सेट्स का उपयोग करते हैं तो वर्टिकल स्केलिंग के लिए छिपी हुई लागत हो सकती है। यदि आपका वातावरण तेजी से बढ़ता रहता है, तो आपको लगातार बड़ी मशीनों पर जाना पड़ सकता है या अतिरिक्त संसाधन रखने पड़ सकते हैं जब तक कि आप उस बिंदु पर नहीं पहुंच जाते जहां वह विकल्प नहीं रह जाता। आपको यह भी विचार करना चाहिए कि अपग्रेड साइकिल एक क्षैतिज रूप से स्केल किए गए वातावरण की तुलना में एक बड़े होस्ट पर कम कुशल हैं। निरंतर वृद्धि के साथ, आपको यह तय करना होगा कि क्या आपको स्केल अप करना जारी रखना चाहिए या आप क्षैतिज रूप से स्केलिंग से लाभान्वित हो सकते हैं।

क्षैतिज स्केलिंग

शार्डिंग क्षैतिज स्केलिंग है। शार्डिंग डेटा को कई नोड्स में संग्रहीत करता है, लोड और प्रक्रियाओं को होस्ट में वितरित करता है। रिप्लिकेशन प्राथमिक-रिप्लिका मॉडल का उपयोग करके और आवश्यकतानुसार अतिरिक्त नोड्स जोड़कर संभाला जाता है।

लोड बैलेंसर नोड्स पर डिस्क में डेटा के टुकड़े वितरित करता है।

यह पढ़ने और लिखने की क्षमता को बढ़ाता है क्योंकि यह पढ़ने और लिखने के संचालन को मशीनों के एक समूह में वितरित करता है, बजाय एक मशीन को पढ़ने या लिखने से परेशान करने के। सौभाग्य से, पिछले कुछ रिलीज में बैलेंसर फ़ंक्शन में बहुत सुधार हुआ है। क्षैतिज स्केलिंग MongoDB® के अंतर्निहित शार्डिंग क्षमता का लाभ उठाता है और सस्ते कमोडिटी हार्डवेयर का उपयोग करने से लाभान्वित होता है।

जब आप क्षैतिज रूप से स्केल करते हैं, तो आप भौतिक या आभासी होस्ट के साथ संसाधन जोड़ते हैं।

  • भौतिक - बहुत सारे कम लागत वाले कमोडिटी हार्डवेयर
  • आभासी - VMs या क्लाउड का उपयोग करके अतिरिक्त CPU कोर या नोड्स जोड़ें
  • नेटवर्किंग - लोड बैलेंसर्स, अतिरिक्त mongoS® प्रक्रियाएं, और इसी तरह जोड़ें

बेहतर लोड बैलेंसिंग तकनीकों (हार्डवेयर और सॉफ्टवेयर) का उपयोग करके ट्रैफिक को वहां शटल करना जहां लोड बैलेंसर्स का उपयोग करके जाने की आवश्यकता है।

MongoDB में रिप्लिका सेट्स के साथ स्केलिंग कैसे लागू करें?

MongoDB एक प्राइमरी और दो सेकेंडरी के साथ बड़े रिप्लिका सेट्स का उपयोग करके क्षैतिज रूप से स्केल आउट कर सकता है जिनमें अप या डाउन स्टेट के लिए हार्टबीट संचार होता है। रिप्लिकेशन ऑपरेशनल लॉजिस्टिक्स के माध्यम से सेकेंडरी पर होता है।

क्षैतिज स्केलिंग: रिप्लिका सेट या शार्डिंग?

शार्डिंग के साथ ट्रेड-ऑफ बढ़ी हुई समग्र जटिलता है। लेकिन शार्डिंग रखरखाव को सरल बनाने का लाभ भी प्रदान करता है। यह रोलिंग अपग्रेड की अनुमति देता है और आपको अपने शार्ड और नोड्स में समानांतर में एक साथ इंडेक्स बिल्ड जैसे कुछ संचालन करने देता है। बड़े रिप्लिका सेट्स बनाम शार्डेड क्लस्टर्स के बीच कुछ तुलनाएं निम्नलिखित हैं:

रिप्लिका सेट शार्डिंग
सरल विशेषज्ञता की आवश्यकता
व्यापक डेटा सेट पर बहुत सारे रीड्स (स्कैटर गैदर नहीं चाहते) बहुत सारे राइट्स और अपडेट्स (सटीक शार्ड्स पर सीधे परिणामों के लिए जाना चाहते हैं)
बहुत सारा डेटा, कम गतिविधि दर बहुत सारा डेटा, बहुत सारी गतिविधि
डिस्क जैसे अधिक सामान्य संसाधनों की आवश्यकता डिस्क, RAM, CPU, राइट स्कोप सहित सभी संसाधनों की अधिक आवश्यकता

ObjectRocket से मैनेज्ड MongoDB क्यों चुनें?

Rackspace ObjectRocket का अर्थ है विशेषज्ञता। हम शुरुआत से ही स्केल पर MongoDB को प्रबंधित करते हैं। हम बड़े रिप्लिका सेट्स के लिए समर्थन प्रदान करते हैं, और हम बड़े शार्डेड MongoDB क्लस्टर्स के लिए समर्थन प्रदान करने वाले पहले प्रदाताओं में से एक थे। हमारे इंजीनियर्स और DBAs के पास अनुभव है और उन्होंने बहुत जटिल बाधाओं को पार किया है—बाधाएं जो आमतौर पर अन्य प्रदाताओं के लिए अनसुनी हैं।

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

हम जो सेवा प्रदान करते हैं उसमें शामिल हैं:

  • इन्फ्रास्ट्रक्चर
  • स्टोरेज
  • IOPS
  • नेटवर्क
  • सबसे अच्छा हैंड्स-ऑन सपोर्ट, बिना किसी संदेह के। 24×7 सही प्रतिक्रिया।

योजनाएं और मूल्य देखें।

हमारा लक्ष्य क्लाउड समाधान प्रदान करना है जो पूरी तरह से मजबूत सेटअप प्रदान करते हैं और आपके सेकेंडरी को वर्चुअल वॉल्यूम पर प्रोविजन नहीं करते। इस प्रकार हम प्रदर्शन समस्याओं से बचते हैं जो तब उत्पन्न हो सकती हैं जब कोई चुनाव होता है और आपका प्राइमरी केवल सेकेंडरी के लिए प्रोविजन किए गए कम मजबूत होस्ट पर समाप्त होता है। स्केलिंग के लिए बस इतना ही। अपने MongoDB इंस्टेंस को कब स्केल करना है, शार्डिंग टिप्स, सर्वश्रेष्ठ शार्ड कुंजी चुनना, और बहुत कुछ के बारे में अधिक जानना न भूलें।

Rackspace DBA सेवाओं के बारे में और जानें।

कोई टिप्पणी करने या प्रश्न पूछने के लिए फीडबैक टैब का उपयोग करें। आप सेल्स चैट पर क्लिक करके अभी चैट कर सकते हैं और बातचीत शुरू कर सकते हैं।


  1. MongoDB को शार्डिंग के साथ कैसे स्केल करें: एक मजबूत, स्केलेबल आर्किटेक्चर बनाएं MongoDB को शार्डिंग के साथ कैसे स्केल करें: एक मजबूत, स्केलेबल आर्किटेक्चर बनाएं

    हाल के एक ब्लॉग पोस्ट में, मैंने चर्चा की कि आपको MongoDB को कब स्केल करने की आवश्यकता है। इस पोस्ट में, फोकस इस बात पर है कि MongoDB को कैसे स्केल किया जाए। MongoDB वर्जन 3.0 ने WiredTiger को डिफ़ॉल्ट स्टोरेज इंजन के रूप में पेश किया। तब से MongoDB स्केलेबिलिटी के मामले में दो दृष्टिकोण प्रदान करन

  1. MongoDB को कब स्केल करें: इष्टतम प्रदर्शन के लिए टाइमिंग टिप्स MongoDB को कब स्केल करें: इष्टतम प्रदर्शन के लिए टाइमिंग टिप्स

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

  1. ObjectRocket के साथ RoboMongo को एकीकृत करें: अपने MongoDB डेटाबेस को विज़ुअलाइज़ करें ObjectRocket के साथ RoboMongo को एकीकृत करें: अपने MongoDB डेटाबेस को विज़ुअलाइज़ करें

    MongoDB Inc. ने MongoDB के 2.6 रिलीज के साथ कई बेहतरीन नई एंटरप्राइज़ सुविधाएं पेश की हैं, हालांकि, एक चीज अभी भी अनुपस्थित है एक डेस्कटॉप एप्लिकेशन जो आपके डेटाबेस को मैनेज करे। Robomongo पेश है, क्रॉस-प्लेटफॉर्म और ओपन सोर्स MongoDB मैनेजमेंट टूल। निम्नलिखित निर्देशों के साथ आप देखेंगे कि RoboMong