อ่าน 1 นาที
การบันทึกล่วงหน้า
ใน วิทยาการคอมพิวเตอร์ การ บันทึกล่วงหน้า ( WAL ) เป็นกลุ่มเทคนิคสำหรับการให้ ความเป็นอะตอม และ ความทนทาน (คุณสมบัติ ACID สองประการ) ใน ระบบฐาน ข้อมูล [ 1 ]
การบันทึกล่วงหน้า
ในวิทยาการคอมพิวเตอร์การบันทึกล่วงหน้า ( WAL ) เป็นกลุ่มเทคนิคสำหรับการให้ความเป็นอะตอมและความทนทาน (คุณสมบัติ ACIDสองประการ) ในระบบฐานข้อมูล[ 1 ]
บันทึกการเขียนล่วงหน้า (write ahead log) เป็นโครงสร้างเสริมที่จัดเก็บอยู่บนดิสก์ซึ่งใช้สำหรับการกู้คืนจากความล้มเหลวและการทำธุรกรรม การเปลี่ยนแปลงจะถูกบันทึกไว้ในบันทึกก่อน ซึ่งจะต้องเขียนลงในที่เก็บข้อมูลถาวรก่อนที่จะเขียนการเปลี่ยนแปลงลงในฐานข้อมูล[ 2 ]
ฟังก์ชันการทำงาน
ฟังก์ชันหลักของบันทึกการเขียนล่วงหน้าสามารถสรุปได้ดังนี้: [ 3 ]
- อนุญาตให้แคชหน้าเว็บทำการบัฟเฟอร์การอัปเดตหน้าเว็บที่จัดเก็บอยู่ในดิสก์ ในขณะเดียวกันก็ต้องมั่นใจได้ถึงความคงทนของข้อมูลในบริบทที่กว้างขึ้นของระบบฐานข้อมูล
- บันทึกการดำเนินการทั้งหมดลงดิสก์จนกว่าสำเนาแคชของหน้าที่ได้รับผลกระทบจากการดำเนินการเหล่านั้นจะได้รับการซิงโครไนซ์บนดิสก์ การดำเนินการทุกอย่างที่แก้ไขสถานะของฐานข้อมูลจะต้องถูกบันทึกไว้ในดิสก์ก่อนจึงจะสามารถแก้ไขเนื้อหาในหน้าเว็บที่เกี่ยวข้องได้
- ในกรณีที่โปรแกรมขัดข้อง ให้สามารถกู้คืนการเปลี่ยนแปลงที่สูญหายในหน่วยความจำจากบันทึกการทำงานได้
ในระบบที่ใช้ WAL การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกไว้ในไฟล์บันทึกก่อนที่จะนำไปใช้งาน โดยปกติแล้ว ข้อมูลการทำซ้ำ (redo) และการยกเลิก (undo) จะถูกจัดเก็บไว้ในไฟล์บันทึกด้วย
จุดประสงค์ของเรื่องนี้สามารถอธิบายได้ด้วยตัวอย่าง ลองนึกภาพโปรแกรมที่กำลังทำงานอยู่ แล้วเครื่องที่โปรแกรมทำงานอยู่เกิดไฟดับ เมื่อเริ่มทำงานใหม่ โปรแกรมอาจต้องการทราบว่าการทำงานนั้นสำเร็จ สำเร็จบางส่วน หรือล้มเหลว หากใช้บันทึกการทำงานล่วงหน้า (write-ahead log) โปรแกรมสามารถตรวจสอบบันทึกนี้และเปรียบเทียบสิ่งที่ควรจะทำเมื่อไฟดับกับสิ่งที่ทำไปแล้วจริง ๆ จากผลการเปรียบเทียบนี้ โปรแกรมสามารถตัดสินใจที่จะยกเลิกสิ่งที่เริ่มต้นไว้ ทำสิ่งที่เริ่มต้นไว้ให้เสร็จ หรือคงไว้เช่นเดิม
หลังจากดำเนินการตามจำนวนครั้งที่กำหนด โปรแกรมควรทำการตรวจสอบสถานะ (checkpoint ) โดยบันทึกการเปลี่ยนแปลงทั้งหมดที่ระบุไว้ใน WAL ลงในฐานข้อมูล และล้างบันทึกทั้งหมด
WAL ช่วยให้สามารถอัปเดตฐานข้อมูลได้โดยตรงอีกวิธีหนึ่งในการอัปเดตแบบอะตอมิกคือการใช้Shadow Pagingซึ่งไม่ใช่การอัปเดตโดยตรง ข้อดีหลักของการอัปเดตโดยตรงคือช่วยลดความจำเป็นในการแก้ไขดัชนีและรายการบล็อก
ระบบไฟล์สมัยใหม่โดยทั่วไปจะใช้ WAL เวอร์ชันดัดแปลงอย่างน้อยสำหรับข้อมูลเมตา ของระบบไฟล์ ซึ่งเรียกว่าการบันทึกการเปลี่ยนแปลง (journaling )
ดูเพิ่มเติม
- ARIESเป็นอัลกอริทึมยอดนิยมในตระกูล WAL
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การบันทึกล่วงหน้า
ใน วิทยาการคอมพิวเตอร์ การ บันทึกล่วงหน้า ( WAL ) เป็นกลุ่มเทคนิคสำหรับการให้ ความเป็นอะตอม และ ความทนทาน (คุณสมบัติ ACID สองประการ) ใน ระบบฐาน ข้อมูล [ 1 ]
ฟังก์ชันการทำงาน
ฟังก์ชันหลักของบันทึกการเขียนล่วงหน้าสามารถสรุปได้ดังนี้: [ 3 ]
ดูเพิ่มเติม
ARIES เป็นอัลกอริทึมยอดนิยมในตระกูล WAL ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Write-ahead_logging&oldid=1345989151 "