MongoDB में जर्नलिंग को समझना

ब्लॉग MongoDB में जर्नलिंग के बारे में एक संक्षिप्त जानकारी देता है

मोंगोड राइट ऑपरेशन के साथ काम करना

Mongod मुख्य रूप से साझा दृश्य में स्मृति में लिखने के संचालन की मेजबानी करता है। इसे साझा कहा जाता है क्योंकि इसमें वास्तविक डिस्क में मेमोरी मैपिंग है।





उदाहरण के लिए, उपयोगकर्ता की डेटा फ़ाइल डेटा dd पर रखी जाती है और, इसमें मेमोरी मैपिंग होती है। यहां, यह पहले सभी डेटा को मेमोरी में धकेलता है और एक निर्दिष्ट अंतराल के बाद यह डेटा को मेमोरी में फ्लैश करता है, जो हर साठ सेकंड में होता है और उपयोगकर्ता इस प्रक्रिया में प्रभावित नहीं होता है।

यहां, इस प्रक्रिया को नो जर्नल ऑप्शन कहा जाता है, जिसका अर्थ है कि यदि डेटा को मेमोरी से डिस्क या अचानक बंद होने से बचाने के लिए 60 सेकंड की देरी होती है, तो इसका मतलब है कि जो भी डेटा मेमोरी में है वह पुनः प्राप्त नहीं किया जा सकता है। इस प्रकार, जर्नलिंग यहां प्रासंगिक हो जाता है।



सेवा अब टिकट प्रणाली प्रशिक्षण

यह जानना महत्वपूर्ण है कि डिफ़ॉल्ट रूप से संस्करण 2.4.10 से पहले जर्नलिंग को अक्षम कर दिया गया था, लेकिन इसके बाद इसे सक्षम किया गया है।

जिस समय मोंगॉड प्रक्रिया शुरू होती है, निम्नलिखित कथन देखा जा सकता है:

जर्नल dir = D: Rana2custom datajournal



यहां, जर्नल निर्देशिका डेटा निर्देशिका के अंदर एक बाल निर्देशिका है और डिफ़ॉल्ट रूप से सक्षम है।

MongoDB में जर्नलिंग क्या है?

इस प्रक्रिया में, मोंगॉड में एक लिखित ऑपरेशन होता है, जो तब निजी दृश्य में परिवर्तन बनाता है। पहला ब्लॉक मेमोरी है और दूसरा ब्लॉक। माय डिस्क ’है। एक निर्दिष्ट अंतराल के बाद, जिसे 'जर्नल कमिट इंटरवल' कहा जाता है, निजी विचार उन कार्यों को जर्नल डायरेक्टरी (डिस्क में रहने वाले) में लिखते हैं।

जर्नल कमिट होने के बाद, मोंगॉड डेटा को साझा दृश्य में धकेलता है। प्रक्रिया के भाग के रूप में, इसे साझा दृश्य से वास्तविक डेटा निर्देशिका में लिखा जाता है (जैसा कि यह प्रक्रिया पृष्ठभूमि में होती है)। मूल लाभ यह है कि हमारे पास 60 सेकंड से 200 मिलीसेकंड तक कम चक्र है।

ऐसे परिदृश्य में जहां किसी भी बिंदु पर अचानक या फ़्लैश डिस्क पिछले 59 सेकंड के लिए अनुपलब्ध रहती है (जर्नल डायरेक्टरी / राइटिंग ऑपरेशंस में मौजूदा डेटा को ध्यान में रखते हुए), तब जब अगली बार मेन्गोड शुरू होता है, तो यह मूल रूप से सभी राइट ऑपरेशन को फिर से शुरू करता है। लॉग और वास्तविक डेटा निर्देशिका में लिखता है।

यह काम किस प्रकार करता है?

यहां, एक बार एक प्रतिबद्ध होने के बाद, एक ही ऑपरेशन को साझा दृश्य में फिर से दोहराया जाता है और फिर, साठ सेकंड के बाद, फ्लैश डिस्क होती है।

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

जर्नलिंग का उपयोग करना लॉग का उपयोग करने जैसा है, इसका कारण है, यह स्थायित्व बढ़ाने के लिए एक राइट ऑपरेशन लॉग बनाता है। जर्नलिंग अस्थायी भंडारण है, जिसका अर्थ है कि यह केवल ऑपरेशन लॉग को जर्नल निर्देशिका में लंबित रखता है। इसके अलावा, साझा दृश्य में डेटा है लेकिन जर्नल निर्देशिका में संचालन है।

उदाहरण के लिए, यदि उपयोगकर्ता जर्नलिंग के बिना कुछ डेटा लिख ​​रहा है, तो जो भी डेटा लिखा गया है, उसकी मेमोरी मैपिंग से उपयोगकर्ता को उस स्थान का पता चल सकता है जहां डेटा लिखा गया है।

निजी दृश्य और साझा दृश्य के बीच लिंक

प्रतिबद्ध होने के बाद, इसे जर्नल निर्देशिका में एक प्रक्रिया के रूप में चिह्नित किया जाता है, और साझा / निजी दृश्य (बिना डेटा साझा किए) के वर्तमान दृश्य के लिए एक और मानचित्रण किया जाता है।

चार्ट में, सभी नीले आइटम रैम (रैंडम एक्सेस मेमोरी) में हैं और केसर डिस्क को दर्शाता है।

यदि मामले में, डेटा को डेटा डायरेक्टरी में फ्लैश नहीं किया जाता है, लेकिन राइटिंग ऑपरेशंस डेटा डायरेक्टरी में हैं, तो मोंगॉड रिप्रोड्यूस करेगा और डेटा डायरेक्टरी में राइट ऑपरेशन लागू करेगा।

ध्यान देने वाली एक महत्वपूर्ण बात यह है कि एक परिदृश्य में जहां जर्नल कमिट करने से पहले दुर्घटना होती है, जो डेटा थाजोड़ दिया200 मिलीसेकेंड के भीतर खो जाएगा।

जावा कैसे एक कार्यक्रम से बाहर निकलने के लिए

यह भी ध्यान दें कि पत्रिका निर्देशिका में, हम वास्तविक ऑपरेशन लिखते रहते हैं।

उदाहरण कथन में, जैसे कि 'Db.class.insert' एक सम्मिलित ऑपरेशन है, जो कक्षा संचालन में सम्मिलित डेटा है। तो वर्ग ऑपरेशन वास्तव में नहीं रहता है लेकिन ऑपरेशन रहता है।

यह भी देखा जाना चाहिए कि यदि जर्नल का उपयोग करने में देरी हो रही है, तो यह प्रदर्शन को प्रभावित करता है।

एक पृष्ठभूमि में जर्नलिंग को एक अतुल्यकालिक प्रक्रिया के रूप में भी किया जा सकता है और एक तुल्यकालिक फैशन में संचालन में कुछ भी नहीं किया जा सकता है। उत्पादन में भी जर्नलिंग की सिफारिश की जाती है।

दूसरी बात यह है कि '200 मिलीसेकंड' का जर्नल कमिट समय-सीमा विन्यास योग्य है, जिसे 3 से 300 मिलीसेकंड के बीच कहीं भी '- - जर्नल कमिट अंतराल' के साथ सक्षम किया जा सकता है, जो सभी गैर-कामकाजी आवश्यकताओं (कितनी बार हो रहा है) पर निर्भर करता है कितनी बार पत्रकार निर्देशिका में लिखना चाहता है)। मामले में, भारी लेखन कार्य चल रहा है, फिर कम मिलीसेकंड होना उचित है।

यह भी ध्यान दें कि निजी दृश्य वास्तविक डेटा रखता है क्योंकि निजी को साझा दृश्य के साथ मैप किया जाता है। यहां साझा किया गया दृश्य इसे डेटा डायरेक्टरी में दिखाता है।

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

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

संबंधित पोस्ट:

अजगर के लिए अच्छा परमाणु है