การอัพเดทที่เลื่อนออกไป vs การอัพเดททันที
Deferred Update และ Immediate Update เป็นสองเทคนิคที่ใช้ในการรักษาไฟล์บันทึกการทำธุรกรรมของระบบจัดการฐานข้อมูล (DBMS) บันทึกธุรกรรม (เรียกอีกอย่างว่าบันทึกรายการบันทึกหรือบันทึกการทำซ้ำ) เป็นไฟล์จริงที่เก็บรหัสธุรกรรม การประทับเวลาของธุรกรรม ค่าเก่าและค่าใหม่ของข้อมูล ซึ่งช่วยให้ DBMS ติดตามข้อมูลก่อนและหลังแต่ละรายการได้ เมื่อธุรกรรมถูกผูกมัดและฐานข้อมูลถูกส่งคืนไปยังสถานะที่สอดคล้องกัน บันทึกอาจถูกตัดทอนเพื่อลบธุรกรรมที่ผูกมัด
เลื่อนการอัพเดท
การอัพเดทที่เลื่อนออกไปหรือที่เรียกว่า NO-UNDO/REDO เป็นเทคนิคที่ใช้ในการกู้คืน/สนับสนุนความล้มเหลวของธุรกรรมที่เกิดขึ้นเนื่องจากระบบปฏิบัติการ พลังงาน หน่วยความจำ หรือเครื่องขัดข้อง เมื่อธุรกรรมทำงาน การอัปเดตหรือการเปลี่ยนแปลงใดๆ ที่ทำกับฐานข้อมูลโดยธุรกรรมจะไม่ทำในทันที พวกเขาจะถูกบันทึกไว้ในไฟล์บันทึก การเปลี่ยนแปลงข้อมูลที่บันทึกในล็อกไฟล์จะนำไปใช้กับฐานข้อมูลเมื่อส่ง กระบวนการนี้เรียกว่า “การทำใหม่” ในการย้อนกลับ การเปลี่ยนแปลงใดๆ กับข้อมูลที่บันทึกไว้ในไฟล์บันทึกจะถูกยกเลิก จึงไม่มีการเปลี่ยนแปลงใดๆ กับฐานข้อมูล หากธุรกรรมล้มเหลวและไม่ได้ผูกมัดเนื่องจากสาเหตุใด ๆ ที่กล่าวถึงข้างต้น เร็กคอร์ดในล็อกไฟล์จะถูกยกเลิกและธุรกรรมจะเริ่มต้นใหม่ หากการเปลี่ยนแปลงในทรานแซกชันเกิดขึ้นก่อนที่จะหยุดทำงาน จากนั้นหลังจากที่ระบบรีสตาร์ท การเปลี่ยนแปลงที่บันทึกไว้ในล็อกไฟล์จะถูกนำไปใช้กับฐานข้อมูล
อัพเดททันที
การอัปเดตทันทีหรือที่เรียกว่า UNDO/REDO ก็เป็นอีกเทคนิคหนึ่งที่ใช้ในการกู้คืน/สนับสนุนความล้มเหลวของธุรกรรมที่เกิดขึ้นเนื่องจากระบบปฏิบัติการ พลังงาน หน่วยความจำ หรือเครื่องขัดข้องเมื่อธุรกรรมทำงาน การอัปเดตหรือการเปลี่ยนแปลงใดๆ ที่ทำโดยธุรกรรมนั้นจะถูกเขียนลงในฐานข้อมูลโดยตรง ทั้งค่าดั้งเดิมและค่าใหม่จะถูกบันทึกไว้ในล็อกไฟล์ด้วยก่อนที่จะทำการเปลี่ยนแปลงในฐานข้อมูล เมื่อคอมมิตการเปลี่ยนแปลงทั้งหมดที่ทำกับฐานข้อมูลจะทำอย่างถาวรและเร็กคอร์ดในล็อกไฟล์จะถูกยกเลิก เมื่อย้อนกลับค่าเก่าจะถูกกู้คืนในฐานข้อมูลโดยใช้ค่าเก่าที่เก็บไว้ในไฟล์บันทึก การเปลี่ยนแปลงทั้งหมดที่ทำโดยการทำธุรกรรมกับฐานข้อมูลจะถูกยกเลิกและกระบวนการนี้เรียกว่า "เลิกทำ" เมื่อระบบรีสตาร์ทหลังจากเกิดความผิดพลาด การเปลี่ยนแปลงฐานข้อมูลทั้งหมดจะทำอย่างถาวรสำหรับธุรกรรมที่ตกลงไว้ สำหรับธุรกรรมที่ไม่มีข้อผูกมัด ค่าดั้งเดิมจะถูกกู้คืนโดยใช้ค่าในไฟล์บันทึก
อะไรคือความแตกต่างระหว่าง Deferred Update และ Immediate Update
แม้ว่า Deferred Update และ Immediate Update จะเป็นสองวิธีในการกู้คืนหลังจากระบบล้มเหลว กระบวนการที่แต่ละวิธีใช้แตกต่างกันในวิธีการอัพเดตที่แตกต่างกัน การเปลี่ยนแปลงใด ๆ ที่ทำกับข้อมูลโดยธุรกรรมจะถูกบันทึกในไฟล์บันทึกก่อนและนำไปใช้กับฐานข้อมูลเมื่อคอมมิต ในวิธีการอัพเดตทันที การเปลี่ยนแปลงที่ทำโดยธุรกรรมจะถูกนำไปใช้กับฐานข้อมูลโดยตรง และค่าเก่าและค่าใหม่จะถูกบันทึกไว้ในไฟล์บันทึก เร็กคอร์ดเหล่านี้ใช้เพื่อกู้คืนค่าเก่าในการย้อนกลับ ในวิธีการอัพเดตที่แตกต่างกัน เร็กคอร์ดในล็อกไฟล์จะถูกยกเลิกเมื่อย้อนกลับและจะไม่นำไปใช้กับฐานข้อมูล ข้อเสียอย่างหนึ่งของวิธีการอัพเดตแบบเลื่อนเวลาคือเวลาที่เพิ่มขึ้นในการกู้คืนในกรณีที่ระบบล้มเหลว ในทางกลับกัน การดำเนินการ I/O บ่อยครั้งในขณะที่ทำธุรกรรมอยู่ เป็นข้อเสียในวิธีการอัพเดตทันที