डिफर्ड अपडेट रिकवरी में, डिस्क पर वास्तविक डेटाबेस संशोधनों को तब तक के लिए स्थगित कर दिया जाता है जब तक कोई ट्रांजैक्शन कमिट नहीं हो जाता। एक्जीक्यूशन के दौरान अपडेट्स केवल लॉग और कैश बफर्स में रिकॉर्ड किए जाते हैं। यदि कोई ट्रांजैक्शन कमिट होने से पहले विफल हो जाता है, तो डिस्क पर डेटाबेस अप्रभावित रहता है इसलिए 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 की आवश्यकता होती है। यह रिकवरी को सरल बनाता है लेकिन कंकरेंसी को सीमित करता है और सभी अनकमिटेड परिवर्तनों को रखने के लिए पर्याप्त बफर स्पेस की आवश्यकता होती है।
