हाल ही में एक ब्लॉग पोस्ट में, मैंने चर्चा की कि आपको MongoDB को कब स्केल करना है। इस पोस्ट में, मोंगोडीबी को स्केल करने के तरीके पर ध्यान केंद्रित किया गया है।
MongoDB संस्करण 3.0 ने WiredTiger को डिफ़ॉल्ट स्टोरेज इंजन के रूप में पेश किया। स्केलेबिलिटी की बात करें तो MongoDB दो दृष्टिकोण प्रदान करने में सक्षम है। मोंगो अब लंबवत और साथ ही क्षैतिज रूप से विस्तार करने में सक्षम है। दोनों दृष्टिकोण करीब से देखने की गारंटी देते हैं।
लंबवत स्केलिंग
लंबवत स्केलिंग कंप्यूटिंग संसाधनों को बढ़ाता है, जैसे सीपीयू की संख्या और प्रकार, या रैम या डिस्क स्थान की मात्रा। इसे ध्यान में रखते हुए, WiredTiger के साथ लंबवत स्केलिंग करते समय, आपको यह पहचानने की आवश्यकता है कि कौन सा संसाधन किसी भी अड़चन में योगदान दे रहा है (चाहे वह CPU/RAM/डिस्क स्थान हो या उसका कुछ संयोजन)।
वायर्ड टाइगर रैम पर ध्यान दें
यदि आवंटित RAM 1GB से कम है, तो WiredTiger आमतौर पर उपलब्ध RAM के 256MB या 50 प्रतिशत के लिए डिफ़ॉल्ट है। परिणामस्वरूप, अधिक RAM आवंटित होने पर WiredTiger कैश का आकार बदलना चाहिए।
क्षैतिज स्केलिंग
स्केलिंग क्षैतिज रूप से एक नेटवर्क में कंप्यूटिंग संसाधनों को वितरित करता है, आमतौर पर सर्वर जोड़कर। जोड़े जाने पर कई नोड्स में डेटा वितरित करने के लिए, MongoDB एक डेटाबेस आर्किटेक्चर का उपयोग करता है जिसे शार्डिंग कहा जाता है, जो कई डेटाबेस इंस्टेंस के बीच वितरित डेटा को विभाजित करने के लिए प्रमुख श्रेणियों का उपयोग करता है।
साझाकरण अवसंरचना की स्थापना
एक शार्डिंग कॉन्फ़िगरेशन की स्थापना में शामिल भौतिक घटकों के लिए निम्नलिखित मदों की आवश्यकता होती है।
- मोंगोस क्वेरी राउटर के रूप में कार्य करता है।
- कॉन्फ़िगर सर्वर शार्डिंग मेटाडेटा को होल्ड करें।
- डेटा नोड्स वास्तविक डेटा पकड़ो।
भौतिक घटकों के बारे में अधिक जानकारी के लिए, हमारे MongoDB अवलोकन पर जाएं।
शार्ड कुंजियों को परिभाषित करना
भौतिक शार्डिंग इन्फ्रास्ट्रक्चर स्थापित करने के बाद, शार्डिंग के तार्किक पहलू पर ध्यान केंद्रित करें। शार्ड कुंजियाँ एक संग्रह के भीतर विभिन्न क्षेत्रों का प्रतिनिधित्व करती हैं जो MongoDB डेटा को विभाजित करने के लिए उपयोग करता है। आसानी से, Mongo आपको इन कुंजियों को परिभाषित करने देता है।
उन क्षेत्रों की पहचान करने के लिए जिनमें शार्ड कीज़ को लागू करना शामिल है:
- संग्रहों को शार्प करने के लिए पहचानें। 200MB से बड़े संग्रह और जिनका डेटा समान रूप से वितरित किया जा सकता है, शार्डिंग के लिए अच्छे उम्मीदवारों का प्रतिनिधित्व करते हैं।
- उपयुक्त शार्ड कुंजी उत्पन्न करें या तैयार करें। शार्प की बनाते समय, निम्नलिखित अनुशंसाओं और प्रश्नों पर विचार करें:
- ऐप्लिकेशन के डेटाबेस के साथ इंटरैक्ट करने के तरीके के बारे में कुछ जानकारी प्राप्त करें।
- विचार करें कि क्या एप्लिकेशन अधिक पढ़ा-लिखा है या लिखना-भारी है, या क्या यह समान रूप से संतुलित है।
- डेटाबेस के खिलाफ सबसे महत्वपूर्ण गतिविधि क्या है? उदाहरण के लिए, एप्लिकेशन डेटाबेस में बड़ी मात्रा में डेटा लिख सकता है, लेकिन सबसे महत्वपूर्ण गतिविधि में 100 एमएस से कम में डेटा लौटाने वाली क्वेरी शामिल हो सकती हैं।
- डेटा वृद्धि के अपेक्षित साप्ताहिक और मासिक पैटर्न क्या हैं?
- क्या किसी दर्द या समस्या वाले क्षेत्रों को संबोधित करने की आवश्यकता है, जैसे धीमी क्वेरी?
- क्या एप्लिकेशन दिन, सप्ताह, महीने या वर्ष के कुछ घंटों के दौरान व्यस्त रहता है? क्या यह हर समय व्यस्त रहता है?
इन मुद्दों की जांच करने के बाद, आप अधिक विस्तृत विश्लेषण शुरू कर सकते हैं। हमारा अगला ब्लॉग पोस्ट इस बात पर चर्चा करेगा कि सही शार्ड कुंजी कैसे खोजें।