Foundationপ্রথম নীতি থেকে
LEVEL 8 · Database Systems

Write-Ahead Log

রাইট-অ্যাহেড লগ

Data page-এর আগে change-টা log-এ durable করে নেওয়ার শাসন — crash-পরে replay করেই সব ফেরে।

also: wal, redo-log

Rule একটাই: data-র আগে log। Dirty page ডিস্কে যেতে পারে, কিন্তু তার change-এর log record আগে fsync হতে হবে।

  • Commit = WAL flush, data page flush নয় — তাই commit cheap
  • Sequential append — random page write-এর চেয়ে ডিস্কে বহুগুণ সস্তা
  • Recovery: last checkpoint থেকে redo; uncommitted undo (ARIES)
SELECT pg_current_wal_lsn();            -- এখন কোথায় দাঁড়িয়ে
SELECT pg_walfile_name(pg_current_wal_lsn());

WAL-ই replication-এর খাদ্যও — streaming replication মূলত এই log দূরে পাঠানো। এক log, তিন কাজ: durability, recovery, replication।