Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> SQL

डिफर्ड अपडेट रिकवरी: विश्वसनीय डेटा इंटीग्रिटी के लिए NO-UNDO और REDO का उपयोग

डिफर्ड अपडेट रिकवरी में, डिस्क पर वास्तविक डेटाबेस संशोधनों को तब तक के लिए स्थगित कर दिया जाता है जब तक कोई ट्रांजैक्शन कमिट नहीं हो जाता। एक्जीक्यूशन के दौरान अपडेट्स केवल लॉग और कैश बफर्स में रिकॉर्ड किए जाते हैं। यदि कोई ट्रांजैक्शन कमिट होने से पहले विफल हो जाता है, तो डिस्क पर डेटाबेस अप्रभावित रहता है इसलिए NO-UNDO। केवल उन कमिटेड ट्रांजैक्शन्स के लिए REDO की आवश्यकता होती है जिनके परिवर्तन डिस्क पर नहीं लिखे गए हैं।

डिफर्ड अपडेट प्रोटोकॉल

  • एक ट्रांजैक्शन अपने कमिट पॉइंट तक पहुंचने तक डिस्क पर डेटाबेस को संशोधित नहीं कर सकता।
  • कमिट से पहले सभी REDO लॉग एंट्रीज को डिस्क पर फोर्स-रिटेन किया जाना चाहिए (राइट-अहेड लॉगिंग)।
  • केवल REDO लॉग एंट्रीज (नए मान/AFIM) की आवश्यकता होती है, कोई UNDO एंट्रीज आवश्यक नहीं।

रिकवरी प्रक्रिया (RDU_M)

स्ट्रिक्ट टू-फेज लॉकिंग के साथ मल्टी-यूजर सिस्टम्स के लिए, रिकवरी एल्गोरिदम दो सूचियों को बनाए रखता है:

  • कमिट लिस्ट: अंतिम चेकपॉइंट के बाद से कमिटेड ट्रांजैक्शन्स।
  • एक्टिव लिस्ट: वे ट्रांजैक्शन्स जो अभी भी एक्टिव थे (कमिट नहीं किए गए)।

लॉग ऑर्डर में कमिटेड ट्रांजैक्शन्स के WRITE ऑपरेशन्स पर REDO लागू किया जाता है। एक्टिव (अनकमिटेड) ट्रांजैक्शन्स प्रभावी रूप से कैंसल हो जाते हैं और उन्हें पुनः सबमिट किया जाना चाहिए।

उदाहरण टाइमलाइन

चेकपॉइंट (t1) क्रैश (t2) T1 (कमिटेड) T2 → REDO T3 → REDO T4 → अनदेखा (कोई कमिट नहीं) T5 → अनदेखा (कोई कमिट नहीं)

T1 चेकपॉइंट से पहले कमिट हुआ - कोई रीडू आवश्यक नहीं। T2, T3 चेकपॉइंट के बाद कमिट हुए - रीडू किया जाना चाहिए। T4, T5 कभी कमिट नहीं हुए - अनदेखा (डिफर्ड अपडेट के तहत डिस्क पर कोई परिवर्तन नहीं)।

REDO ऑप्टिमाइज़ेशन

यदि आइटम X को कमिटेड ट्रांजैक्शन्स द्वारा कई बार अपडेट किया गया था, तो केवल अंतिम अपडेट को रीडन करने की आवश्यकता है:

  • लॉग को रिवर्स ऑर्डर में पार करें।
  • पहले से रीडन किए गए आइटम्स की सूची बनाए रखें।
  • सूची में पहले से मौजूद आइटम्स को छोड़ दें (अंतिम मान पहले ही रिकवर हो चुका है)।
  • केवल सूची में नहीं होने वाले आइटम्स को रीडू करें, फिर उन्हें जोड़ें।

लाभ और सीमाएं

लाभसीमाएं
विफलता पर कोई रोलबैक आवश्यक नहीं (NO-UNDO)राइट-लॉक्ड आइटम्स कमिट तक लॉक्ड रहते हैं
कोई कैस्केडिंग रोलबैक नहीं (आइटम्स कमिट तक लॉक्ड)कमिट होने तक सभी अपडेट्स के लिए बफर स्पेस आवश्यक
अबॉर्टेड ट्रांजैक्शन्स बस पुनः सबमिट किए जाते हैंकेवल कम परिवर्तनों वाले छोटे ट्रांजैक्शन्स के लिए व्यावहारिक

निष्कर्ष

NO-UNDO/REDO डिफर्ड अपडेट कमिट होने तक डिस्क राइट्स को स्थगित करता है, रिकवरी के दौरान UNDO ऑपरेशन्स की आवश्यकता को समाप्त करता है। केवल अंतिम चेकपॉइंट के बाद के कमिटेड ट्रांजैक्शन्स को REDO की आवश्यकता होती है। यह रिकवरी को सरल बनाता है लेकिन कंकरेंसी को सीमित करता है और सभी अनकमिटेड परिवर्तनों को रखने के लिए पर्याप्त बफर स्पेस की आवश्यकता होती है।

डिफर्ड अपडेट रिकवरी: विश्वसनीय डेटा इंटीग्रिटी के लिए NO-UNDO और REDO का उपयोग

  1. JSP लाइफसाइकिल को समझाएं JSP लाइफसाइकिल को समझाएं

    JSP लाइफसाइकिल को इसकी निर्माण से लेकर विनाश तक की प्रक्रिया के रूप में परिभाषित किया गया है। यह एक सर्वलेट लाइफसाइकिल के समान है जिसमें एक अतिरिक्त चरण है जो JSP को सर्वलेट में संकलित करने के लिए आवश्यक है। JSP द्वारा अनुसरण किए जाने वाले पथ JSP द्वारा अनुसरण किए जाने वाले पथ निम्नलिखित हैं - सं

  1. HTML placeholder एट्रिब्यूट HTML placeholder एट्रिब्यूट

    परिचय HTML placeholder एट्रिब्यूट वह टेक्स्ट दर्शाता है जो <input> या <textarea> एलिमेंट में उपयोगकर्ता द्वारा कुछ भी दर्ज करने से पहले प्रदर्शित होता है। यह उपयोगकर्ता को अपेक्षित इनपुट प्रारूप या सामग्री का संकेत देता है। सिंटैक्स <tagname placeholder=text></tagname> उदाह

  1. HTML DOM टेबल deleteTHead() मेथड: टेबल हेडर हटाना HTML DOM टेबल deleteTHead() मेथड: टेबल हेडर हटाना

    HTML DOM टेबल deleteTHead() मेथड HTML दस्तावेज़ में टेबल से <thead> एलिमेंट हटाता है। सिंटैक्स object.deleteTHead() उदाहरण: टेबल हेडर हटाना <!DOCTYPE html> <html> <style> body { color: #000; background: lightblue; height: 100vh; text-align: center; } table { margin: 2re