কম্পিউটার টিউটোরিয়াল

বিলম্বিত আপডেট পুনরুদ্ধার:নির্ভরযোগ্য ডেটা অখণ্ডতার জন্য NO-UNDO এবং REDO ব্যবহার করা

বিলম্বিত আপডেট পুনরুদ্ধারের ক্ষেত্রে, একটি লেনদেন কমিট না হওয়া পর্যন্ত ডিস্কে প্রকৃত ডাটাবেস পরিবর্তন স্থগিত করা হয়। এক্সিকিউশনের সময় আপডেটগুলি শুধুমাত্র লগ এবং ক্যাশে বাফারগুলিতে রেকর্ড করা হয়। যদি একটি লেনদেন কমিট করার আগে ব্যর্থ হয়, ডিস্কের ডাটাবেস অপ্রভাবিত থাকে তাই NO-UNDO. প্রতিশ্রুতিবদ্ধ লেনদেনের জন্য শুধুমাত্র REDO প্রয়োজন যার পরিবর্তনগুলি ডিস্কে লেখা হয়নি৷

বিলম্বিত আপডেট প্রোটোকল

  • একটি লেনদেন ডিস্কে ডাটাবেস পরিবর্তন করতে পারে না যতক্ষণ না এটি তার কমিট পয়েন্টে পৌঁছায়।
  • সমস্ত REDO লগ এন্ট্রি অবশ্যই কমিট করার আগে ডিস্কে জোর করে লিখতে হবে (রাইট-এহেড লগিং)।
  • শুধুমাত্র REDO লগ এন্ট্রি (নতুন মান/AFIM) প্রয়োজন কোন UNDO এন্ট্রির প্রয়োজন নেই।

পুনরুদ্ধার পদ্ধতি (RDU_M)

কঠোর দুই-ফেজ লকিং সহ বহু ব্যবহারকারী সিস্টেমের জন্য, পুনরুদ্ধার অ্যালগরিদম দুটি তালিকা বজায় রাখে

  • শেষ চেকপয়েন্ট থেকে প্রতিশ্রুতিবদ্ধ লেনদেনের তালিকা।
  • সক্রিয় তালিকা লেনদেন যা এখনও সক্রিয় ছিল (প্রতিশ্রুতিবদ্ধ নয়)।

লগ অর্ডারে প্রতিশ্রুতিবদ্ধ লেনদেনের লিখিত ক্রিয়াকলাপগুলিতে REDO প্রয়োগ করা হয়। সক্রিয় (অনিমিত্ত) লেনদেনগুলি কার্যকরভাবে বাতিল করা হয়েছে এবং পুনরায় জমা দিতে হবে৷

উদাহরণ টাইমলাইন

চেকপয়েন্ট (t1) ক্র্যাশ (t2) T1 (প্রতিশ্রুতিবদ্ধ) T2 → REDO T3 → REDO T4 → উপেক্ষা করা (কোন প্রতিশ্রুতি নেই) T5 → উপেক্ষা করা (কোন প্রতিশ্রুতি নেই)

T1 চেকপয়েন্টের আগে প্রতিশ্রুতিবদ্ধ কোন পুনরায় করার প্রয়োজন নেই। T2, T3 চেকপয়েন্টের পরে প্রতিশ্রুতিবদ্ধ পুনরায় করা আবশ্যক। T4, T5 কখনই উপেক্ষা করা হয়নি (বিলম্বিত আপডেটের অধীনে ডিস্কে কোনো পরিবর্তন নেই)।

অপ্টিমাইজেশন পুনরায় করুন

যদি প্রতিশ্রুতিবদ্ধ লেনদেনের মাধ্যমে আইটেম X একাধিকবার আপডেট করা হয়, শুধুমাত্র শেষ আপডেটটি পুনরায় করা দরকার

  • লগটিকে বিপরীত ক্রমে অতিক্রম করুন।
  • ইতিমধ্যে পুনরায় করা আইটেমগুলির একটি তালিকা বজায় রাখুন।
  • আগে থেকেই তালিকায় থাকা আইটেমগুলি এড়িয়ে যান (শেষ মান ইতিমধ্যে পুনরুদ্ধার করা হয়েছে)।
  • শুধুমাত্র সেই আইটেমগুলিকে পুনরায় করুন যা এখনও তালিকায় নেই, তারপর সেগুলি যোগ করুন৷

সুবিধা এবং সীমাবদ্ধতা

সুবিধা সীমাবদ্ধতা ব্যর্থতার জন্য কোন রোলব্যাকের প্রয়োজন নেই (না-আনডো)লিখতে-লক করা আইটেম কমিট না হওয়া পর্যন্ত লক থাকে না কোন ক্যাসকেডিং রোলব্যাক (কমিট না হওয়া পর্যন্ত আইটেমগুলি লক করা) সমস্ত আপডেটের জন্য বাফার স্পেস প্রয়োজন যতক্ষণ না প্রতিশ্রুতিবদ্ধ লেনদেনগুলি কেবল পুনরায় জমা দেওয়া হয় শুধুমাত্র কয়েকটি পরিবর্তন সহ ছোট লেনদেনের জন্য ব্যবহারিক

উপসংহার

NO-UNDO/REDO বিলম্বিত আপডেট কমিট না হওয়া পর্যন্ত ডিস্ক স্থগিত করে, পুনরুদ্ধারের সময় UNDO অপারেশনের প্রয়োজনীয়তা দূর করে। শেষ চেকপয়েন্টের পরে শুধুমাত্র প্রতিশ্রুতিবদ্ধ লেনদেনের জন্য REDO প্রয়োজন। এটি পুনরুদ্ধারকে সহজ করে কিন্তু সঙ্গতিকে সীমিত করে এবং সমস্ত অনিয়মিত পরিবর্তনগুলিকে ধরে রাখতে পর্যাপ্ত বাফার স্পেস প্রয়োজন৷

বিলম্বিত আপডেট পুনরুদ্ধার:নির্ভরযোগ্য ডেটা অখণ্ডতার জন্য NO-UNDO এবং REDO ব্যবহার করা


ত্রিভুজ No
  1. গ্রেপে এক্সেপশন হ্যান্ডলিং মাস্টারিং:কাস্টম ত্রুটি, সেরা অনুশীলন এবং অ্যাপসিগন্যাল ইন্টিগ্রেশন

  2. HTML DOM শৈলী বর্ডার শীর্ষ সম্পত্তি

  3. পাইথন ওপেনসিভি মডিউল ব্যবহার করে হিস্টোগ্রাম সমতা

  4. TCmalloc-এর সাথে রুবির মেমরি বরাদ্দের প্রোফাইলিং