मुझे आश्चर्य है कि यह मेम कहां से आता है। पहला, कुछ नहीं वास्तव में गारंटी देता है कि सभी कैशिंग परतों के कारण वास्तविक एचडीडी को कुछ भी लिखा गया है, और यहां तक कि पारंपरिक आरडीबीएमएस भी हर समय फाइलों को लिखने का प्रयास नहीं करते हैं, अन्यथा वे इतने तेज़ नहीं होंगे, लेकिन विवरण बहुत भिन्न होते हैं (देखें के लिए) उदाहरण InnoDB में अनुकूली फ्लशिंग )।
आपको केवल पहली परत के साथ खुद को चिंतित करना चाहिए जो अनिवार्य रूप से प्रश्न है जब डेटाबेस डिस्क पर लिखने का प्रयास करता है। अब पहली कैशिंग परत है:वास्तविक तालिकाओं/संग्रहों में लिखने के बजाय, कई डीबी (मोंगोडीबी समेत) जर्नलिंग का उपयोग करते हैं:केवल एक परिशिष्ट फ़ाइल में लिखें जिसे नियमित रूप से वास्तविक डेटा फ़ाइलों में विलय कर दिया जाएगा। कुछ भी कम हो जाता है और यह जर्नल में है, आप ठीक हैं।
अब सवाल यह है कि क्या आप जर्नल को लिखना चाहते हैं और इसे कैसे करना है। MongoDB में, आप चिंता लिखें
का उपयोग करके इसे नियंत्रित कर सकते हैं। , यानी आप अपना आवेदन कोड तब तक प्रतीक्षा कर सकते हैं जब तक कि मोंगोडीबी ने एक विशिष्ट लेखन (या सभी लिखने के लिए) पत्रिका को लिखा नहीं है। MongoDB में, जर्नल कमिटमेंट की प्रतीक्षा में डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ अधिकतम 10ms लगते हैं यदि जर्नल और डेटा फ़ाइलें अलग-अलग ब्लॉक डिवाइस पर हैं, तो 33ms यदि वे एक ही ब्लॉक डिवाइस पर हैं। journalCommitInternval
यदि आवश्यक हो तो संशोधित भी किया जा सकता है।
मैंने MongoDB की जर्नलिंग एक अन्य उत्तर में कुछ विवरण एकत्र किए हैंए> ।
एक साइड नोट के रूप में, स्थायित्व का वास्तव में लेन-देन से कोई लेना-देना नहीं है। लेन-देन अलगाव और स्थिरता प्रदान करते हैं, उदा। आप एक बार में कई चीजें बदल सकते हैं और पाठकों को नई या पुरानी प्राप्त करने की गारंटी दी जाती है, लेकिन कुछ बीच में नहीं। दूसरे शब्दों में, एक लेनदेन-सुरक्षित डेटाबेस एक इन-मेमोरी डेटाबेस हो सकता है जो डिस्क पर बिल्कुल भी नहीं लिखता है।