বিলম্বিত আপডেট বনাম তাৎক্ষণিক আপডেট
বিলম্বিত আপডেট এবং তাৎক্ষণিক আপডেট হল দুটি কৌশল যা ডেটাবেস ম্যানেজমেন্ট সিস্টেমের (DBMS) লেনদেন লগ ফাইলগুলি বজায় রাখতে ব্যবহৃত হয়। লেনদেন লগ (জার্নাল লগ বা রিডো লগ হিসাবেও উল্লেখ করা হয়) হল একটি প্রকৃত ফাইল যা লেনদেন আইডি, লেনদেনের সময় স্ট্যাম্প, পুরানো মান এবং ডেটার নতুন মান সংরক্ষণ করে। এটি ডিবিএমএসকে প্রতিটি লেনদেনের আগে এবং পরে ডেটা ট্র্যাক রাখতে অনুমতি দেয়। যখন লেনদেনগুলি প্রতিশ্রুতিবদ্ধ হয় এবং ডাটাবেস একটি সামঞ্জস্যপূর্ণ অবস্থায় ফিরে আসে, তখন প্রতিশ্রুতিবদ্ধ লেনদেনগুলি সরাতে লগটি কাটা হতে পারে৷
বিলম্বিত আপডেট
বিলম্বিত আপডেটকে NO-UNDO/REDO বলা হয় এমন একটি কৌশল যা অপারেটিং সিস্টেম, পাওয়ার, মেমরি বা মেশিনের ব্যর্থতার কারণে ঘটে যাওয়া লেনদেন ব্যর্থতা পুনরুদ্ধার/সমর্থন করতে ব্যবহৃত হয়। যখন একটি লেনদেন চলে, লেনদেনের দ্বারা ডাটাবেসে করা কোনো আপডেট বা পরিবর্তন অবিলম্বে করা হয় না। এগুলি লগ ফাইলে রেকর্ড করা হয়। লগ ফাইলে রেকর্ড করা ডেটা পরিবর্তনগুলি কমিটের ডাটাবেসে প্রয়োগ করা হয়। এই প্রক্রিয়াটিকে "পুনরায় করা" বলা হয়। রোলব্যাকে, লগ ফাইলে রেকর্ড করা ডেটাতে যে কোনো পরিবর্তন বাতিল করা হয়; তাই ডাটাবেসে কোন পরিবর্তন প্রয়োগ করা হবে না। যদি একটি লেনদেন ব্যর্থ হয় এবং উপরে উল্লিখিত কোনো কারণে এটি প্রতিশ্রুতিবদ্ধ না হয়, লগ ফাইলের রেকর্ড বাতিল করা হয় এবং লেনদেন পুনরায় আরম্ভ করা হয়। যদি একটি লেনদেনের পরিবর্তনগুলি ক্র্যাশ হওয়ার আগে প্রতিশ্রুতিবদ্ধ হয়, তবে সিস্টেম পুনরায় চালু হওয়ার পরে, লগ ফাইলে রেকর্ড করা পরিবর্তনগুলি ডাটাবেসে প্রয়োগ করা হয়৷
তাত্ক্ষণিক আপডেট
অপারেটিং সিস্টেম, পাওয়ার, মেমরি বা মেশিনের ব্যর্থতার কারণে ঘটে যাওয়া লেনদেন ব্যর্থতা পুনরুদ্ধার/সমর্থন করতে ব্যবহৃত আরেকটি কৌশল যাকে UNDO/REDOও বলা হয় তাৎক্ষণিক আপডেট।যখন একটি লেনদেন চলে, লেনদেনের দ্বারা করা যেকোন আপডেট বা পরিবর্তন সরাসরি ডাটাবেসে লেখা হয়। ডাটাবেসে পরিবর্তন করার আগে মূল মান এবং নতুন মান উভয়ই লগ ফাইলে রেকর্ড করা হয়। প্রতিশ্রুতিতে ডাটাবেসে করা সমস্ত পরিবর্তন স্থায়ী করা হয় এবং লগ ফাইলের রেকর্ডগুলি বাতিল করা হয়। রোলব্যাকে পুরানো মানগুলি লগ ফাইলে সংরক্ষিত পুরানো মানগুলি ব্যবহার করে ডাটাবেসে পুনরুদ্ধার করা হয়। ডাটাবেসে লেনদেনের মাধ্যমে করা সমস্ত পরিবর্তন বাতিল করা হয় এবং এই প্রক্রিয়াটিকে "আন-ডুয়িং" বলা হয়। যখন সিস্টেম ক্র্যাশের পরে পুনরায় চালু হয়, তখন সমস্ত ডাটাবেস পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ লেনদেনের জন্য স্থায়ী হয়। অপ্রত্যাশিত লেনদেনের জন্য, লগ ফাইলের মানগুলি ব্যবহার করে মূল মানগুলি পুনরুদ্ধার করা হয়৷
বিলম্বিত আপডেট এবং তাৎক্ষণিক আপডেটের মধ্যে পার্থক্য কী
যদিও বিলম্বিত আপডেট এবং তাৎক্ষণিক আপডেট একটি সিস্টেম ব্যর্থতার পরে পুনরুদ্ধারের জন্য দুটি পদ্ধতি, প্রতিটি পদ্ধতি যে প্রক্রিয়াটি ব্যবহার করে তা আলাদা।ভিন্ন আপডেট পদ্ধতিতে, লেনদেনের মাধ্যমে ডেটাতে করা যেকোনো পরিবর্তন প্রথমে একটি লগ ফাইলে রেকর্ড করা হয় এবং কমিটের সময় ডাটাবেসে প্রয়োগ করা হয়। তাৎক্ষণিক আপডেট পদ্ধতিতে, একটি লেনদেনের মাধ্যমে করা পরিবর্তন সরাসরি ডাটাবেসে প্রয়োগ করা হয় এবং পুরানো মান এবং নতুন মানগুলি লগ ফাইলে রেকর্ড করা হয়। এই রেকর্ডগুলি রোলব্যাকে পুরানো মান পুনরুদ্ধার করতে ব্যবহৃত হয়। ভিন্ন আপডেট পদ্ধতিতে, লগ ফাইলের রেকর্ডগুলি রোল ব্যাক করার সময় বাতিল করা হয় এবং কখনই ডাটাবেসে প্রয়োগ করা হয় না। বিলম্বিত আপডেট পদ্ধতির একটি অসুবিধা হল একটি সিস্টেম ব্যর্থতার ক্ষেত্রে পুনরুদ্ধারের জন্য বর্ধিত সময়। অন্যদিকে, লেনদেন সক্রিয় থাকাকালীন ঘন ঘন I/O অপারেশন, তাৎক্ষণিক আপডেট পদ্ধতির একটি অসুবিধা।