प्रत्येक डेटाबेस सिस्टम में एक संरचित घटक होता है जो यह बनाए रखने के लिए ज़िम्मेदार होता है कि मेमोरी और डिस्क दोनों में डेटा कैसे संग्रहीत और परोसा जाता है। इसे अक्सर स्टोरेज इंजन के रूप में जाना जाता है। अधिक बार परिचालन डेटाबेस के आर्किटेक्चर का मूल्यांकन करते समय, डेवलपर्स पहले हाथ के कारकों जैसे डेटा मॉडलिंग, कम विलंबता, बेहतर थ्रूपुट संचालन, डेटा स्थिरता, स्केलेबिलिटी सुगमता, और न्यूनतम गलती सहनशीलता पर खाते में डालते हैं। इसके बावजूद, किसी को बेहतर ट्यूनिंग के लिए अंतर्निहित स्टोरेज इंजन पर विस्तृत और उन्नत ज्ञान की आवश्यकता होती है ताकि यह हाइलाइट किए गए कारकों को कुशलता से वितरित कर सके।
डीबी सिस्टम के लिए एक आवेदन का एक सरल चक्र नीचे दिखाया गया है...
सामान्य अनुप्रयोग संरचना का उदाहरणवायर्ड टाइगर स्टोरेज इंजन
MongoDB मुख्य रूप से 3 स्टोरेज इंजनों का समर्थन करता है जिनका प्रदर्शन कुछ विशिष्ट कार्यभार के अनुसार भिन्न होता है। भंडारण इंजन हैं:
- वायर्ड टाइगर स्टोरेज इंजन
- इन-मेमोरी स्टोरेज इंजन
- एमएमएपीवी1 स्टोरेज इंजन
WiredTiger स्टोरेज इंजन में B-ट्री बेस्ड इंजन और लॉग स्ट्रक्चर्ड मर्ज ट्री बेस्ड इंजन दोनों कॉन्फिगरेशन हैं।
बी-पेड़ आधारित इंजन
यह प्राचीन भंडारण इंजनों में से एक है जिससे अन्य परिष्कृत सेटअप प्राप्त किए गए हैं। यह एक स्व-संतुलित ट्री डेटा संरचना है जो डेटा सॉर्टिंग सुनिश्चित करती है और लॉगरिदमिक तरीके से खोजों, अनुक्रमिक पहुंच, सम्मिलन और हटाने को सक्षम बनाती है। यह पंक्ति-आधारित भंडारण है जैसे कि प्रत्येक पंक्ति को डेटाबेस में एकल रिकॉर्ड माना जाता है
बी-ट्री स्टोरेज इंजन के गुण
- उच्च थ्रूपुट और कम विलंबता पढ़ता है। बी-पेड़ों में चौड़ा और उथला बढ़ने की प्रवृत्ति होती है, जैसे कि बहुत कम नोड्स का पता लगाया जाता है।
- क्रमिक ट्रैवर्सिंग के लिए कुंजियों को क्रमबद्ध क्रम में रखता है और अनुक्रमणिका को पुनरावर्ती एल्गोरिथम के साथ संतुलित किया जाता है।
- आंतरिक भंडारण नोड्स को हमेशा कम से कम आधा भरा रखा जाता है जो सामान्य रूप से अपव्यय को कम करता है।
- छोटी अवधि के भीतर बड़ी संख्या में सम्मिलन और विलोपन को संभालना आसान है।
- डिस्क रीडिंग को कम करने के उद्देश्य से पदानुक्रमित अनुक्रमण का उपयोग किया जाता है।
- आंशिक रूप से पूर्ण ब्लॉक के उपयोग के माध्यम से सम्मिलन और विलोपन को तेज करता है।
बी-ट्री स्टोरेज इंजन की सीमाएं
- यादृच्छिक लेखन के साथ एक सुव्यवस्थित डेटा संरचना सुनिश्चित करने की आवश्यकता के कारण खराब लेखन प्रदर्शन। भंडारण के लिए क्रमिक लेखन की तुलना में यादृच्छिक लेखन अधिक महंगे हैं।
- एक ब्लॉक में एक पंक्ति में मामूली अपडेट के लिए भी पूरे ब्लॉक का रेडी-मॉडिफाई-राइट पेनल्टी।
लॉग स्ट्रक्चर्ड मर्ज ट्री बेस्ड इंजन
बी-ट्री आधारित इंजन के खराब लेखन प्रदर्शन के कारण, डेवलपर्स को डीबीएमएस के लिए बड़े डेटासेट से निपटने का एक तरीका निकालना पड़ा। लॉग स्ट्रक्चर्ड मर्ज ट्री बेस्ड इंजन (एलएसएम ट्री) को इसलिए स्थापित किया गया था ताकि विस्तारित अवधि में उच्च लेखन मात्रा वाली फाइलों तक अनुक्रमित पहुंच के प्रदर्शन में सुधार किया जा सके। इस मामले में, कैस्केडिंग मेमोरी के पहले चरण में यादृच्छिक लेखन डिस्क-आधारित पहले घटक पर अनुक्रमिक लेखन में बदल जाते हैं।
एलएसएम ट्री स्टोरेज इंजन के गुण
- तेज़ अनुक्रमिक लेखन करने की क्षमता बड़े तेज़ी से बढ़ते डेटा के त्वरित प्रबंधन को बढ़ाती है।
- स्तरीय भंडारण के लिए उपयुक्त है इसलिए लागत और प्रदर्शन के मामले में संगठनों को बेहतर चयन प्रदान करता है। फ्लैश-आधारित एसएसडी इस मामले में शानदार प्रदर्शन प्रदान करते हैं।
- बेहतर संपीड़न और भंडारण क्षमता इसलिए भंडारण स्थान की बचत होती है और लगभग पूर्ण भंडारण को बढ़ाता है
- डेटा हमेशा क्वेरी के लिए तुरंत उपलब्ध होता है।
- प्रविष्टि बहुत तेज है।
बी-ट्री स्टोरेज इंजन की सीमाएं
रीड और स्पेस एम्प्लीफिकेशन के कारण रीड ऑपरेशंस के दौरान बी-ट्री की तुलना में अधिक मेमोरी का उपभोग करें। हालांकि, ब्लूम फिल्टर जैसे कुछ दृष्टिकोणों ने व्यवहार में इस प्रभाव को कम कर दिया है, जैसे कि एक बिंदु क्वेरी के दौरान जांच की जाने वाली फाइलों की संख्या कम हो जाती है।
WiredTiger तकनीक को बी-ट्री और एलएसएम दोनों लाभों को नियोजित करने के लिए डिज़ाइन किया गया था जिससे यह परिष्कृत और मोंगोडीबी के लिए सबसे अच्छा स्टोरेज इंजन बन गया। IT वास्तव में MongoDB का डिफ़ॉल्ट स्टोरेज इंजन है।
मोंगोडीबी डीबीए बनें - मोंगोडीबी को प्रोडक्शन में लाना सीखें कि मोंगोडीबी को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानने की जरूरत है मुफ्त में डाउनलोड करेंवायर्ड टाइगर स्टोरेज इंजन आर्किटेक्चर
जैसा कि ऊपर उल्लेख किया गया है, इसमें दो बुनियादी भंडारण इंजनों की अवधारणा शामिल है जो कि बी-ट्री और एलएसएम ट्री इंजन हैं, इसलिए यह एक मल्टीवर्सन समवर्ती नियंत्रण (एमवीसीसी) भंडारण इंजन है। दो संयुक्त गुणों के गुण सिस्टम को संग्रह तक पहुंचने के समय डेटाबेस का एक स्नैपशॉट देखने में सक्षम बनाता है। चौकियों की स्थापना इस तरह की जाती है कि चौकियों के बीच डिस्क पर डेटा का एक सुसंगत दृश्य रिकॉर्ड किया जाता है। चौकियों के बीच दुर्घटना के मामले में, इन चौकियों के साथ पुनर्प्राप्त करना आसान है या यों कहें, भले ही डेटा के लिए कोई चौकियां न हों, कोई इसे डिस्क जर्नल फ़ाइलों से पुनर्प्राप्त कर सकता है।
कम विलंबता बढ़ाने के लिए डिस्क के बजाय कैश का व्यापक उपयोग। WiredTiger स्टोरेज इंजन OS पेज-कैश पर बहुत अधिक निर्भर करता है जैसे कि डिस्क को शामिल किए बिना कंप्रेस्ड डेटा प्राप्त किया जाता है। इसके अलावा, कम से कम हाल ही में उपयोग किए गए डेटा को रैम से साफ़ किया जाता है जिससे कैशे के लिए अधिक जगह बच जाती है।
बी-ट्री स्टोरेज अवधारणा कम सीपीयू उपयोग के साथ अत्यधिक कुशल रीड और अच्छा लेखन प्रदर्शन प्रदान करती है। इसमें एक दस्तावेज़-स्तरीय लॉकिंग कार्यान्वयन भी है जो अत्यधिक समवर्ती कार्यभार को सक्षम करता है और यह संगामिति परिणामस्वरूप सर्वर को कई कोर सीपीयू का लाभ उठाने की सुविधा प्रदान करती है। सामान्य तौर पर, सभी शोध डेटाबेस की उच्च मापनीयता को बढ़ाते हैं।
एंटरप्राइज़ संस्करण WiredTiger स्टोरेज इंजन के लिए ऑन-डिस्क एन्क्रिप्शन का समर्थन करता है जो एक ऐसी सुविधा है जो डेटा सुरक्षा में काफी सुधार करती है।
WiredTiger स्टोरेज इंजन राइट-फॉरवर्ड लॉगिंग को सक्षम बनाता है जो स्वचालित क्रैश रिकवरी सुनिश्चित करता है और लेखन को टिकाऊ बनाता है।
वायर्ड टाइगर स्टोरेज इंजन के लाभ
- स्नैप, जीज़िप और प्रीफ़िक्स कम्प्रेशन जैसी कई संपीड़न तकनीकों के कारण कुशल भंडारण।
- यह समवर्ती पढ़ने और लिखने के साथ अत्यधिक मापनीय है। यह अंत में थ्रूपुट और सामान्य डेटाबेस प्रदर्शन में सुधार करता है।
- राइट-फॉरवर्ड लॉग और चौकियों के उपयोग के साथ डेटा टिकाऊपन सुनिश्चित करें।
- इष्टतम स्मृति उपयोग। WiredTiger आंतरिक कैश और फ़ाइल सिस्टम कैश दोनों का उपयोग करता है।
- फाइल सिस्टम कैश के साथ, MongoDB आसानी से मुफ्त मेमोरी का उपयोग कर सकता है जिसका उपयोग WiredTiger कैश द्वारा नहीं किया जाता है।
वायर्ड टाइगर स्टोरेज इंजन सेटबैक
डेटा अपडेट करने में कठिनाइयाँ। समवर्ती योजना इन-प्लेस अपडेट को रोकती है जैसे कि किसी दस्तावेज़ में फ़ील्ड मान को अपडेट करना पूरे दस्तावेज़ को फिर से लिखता है।
निष्कर्ष
WiredTiger स्टोरेज इंजन अधिकतम और इष्टतम प्रदर्शन प्राप्त करने के लिए दो प्रमुख स्टोरेज इंजन, बी-ट्री और एलएसएम ट्री स्टोरेज इंजन से अवधारणाओं को एकीकृत करता है। दोनों ही मामलों के फायदों को तौलना और उन्हें सामूहिक रूप से नियोजित करना WiredTiger को एक सामान्य प्रयोजन भंडारण इंजन बनाता है। इस कारण से, MongoDB के वर्तमान संस्करणों में, यह डिफ़ॉल्ट संग्रहण इंजन है। इसका तात्पर्य यह है कि यदि आपके पास वास्तव में इससे घृणा करने का कोई मजबूत कारण नहीं है, तो यह आपके डेटा के लिए सबसे अच्छा है। हालाँकि, स्टोरेज इंजन का विकल्प आपके डेटा उपयोग के मामले पर निर्भर करता है या इसके बजाय जहां WiredTiger आपकी अपेक्षाओं को पूरा नहीं कर सकता है। सामान्य तौर पर, यह सबसे अच्छा डिफ़ॉल्ट स्टोरेज इंजन है।