Crash Recovery & WAL Replay
On database engine startup, MagnumDB scans the Write-Ahead Log (magnumdb.wal) to reconstruct committed transaction states.
src/wal/recovery.rs
rust
// Startup Crash Recovery Replay Algorithm
pub fn perform_wal_recovery(db: &mut Database) -> Result<()> {
let mut wal_reader = LogReader::open("./data/magnumdb.wal")?;
while let Some(record) = wal_reader.next_record()? {
if record.validate_crc32() && record.is_committed() {
db.apply_wal_record(&record)?;
}
}
Ok(())
}