Why is this an issue?
In heap_table.cpp, page is unpinned before WAL is guaranteed durable:
bpm_.unpin_page(pid, true); // Page written
return TupleId(...); // WAL may not be flushed
Crash between page write and WAL flush loses data with no redo record.
What is causing it?
No coordination between page write and WAL durability.
How can it be solved?
Flush WAL before acknowledging commit.
Category
Severity
Why is this an issue?
In
heap_table.cpp, page is unpinned before WAL is guaranteed durable:Crash between page write and WAL flush loses data with no redo record.
What is causing it?
No coordination between page write and WAL durability.
How can it be solved?
Flush WAL before acknowledging commit.
Category
Severity