Crash between flush and manifest

Flush, crash, restart replay (teaching sketch)

Crash between flush and manifest Flush, crash, restart replay (teaching sketch) append + fsync update sorted map ack after fsync flush sorted SSTable manifest record lost in crash crash lands between the flush and the manifest record restart: read manifest replay checksummed WAL ignore unlisted file serve reads again Steady writes Flush, then crash Restart recovery Client · writer · Sequence participant Client writer WAL · append-only log · Sequence participant WAL append-only log Memtable · sorted RAM · Sequence participant Memtable sorted RAM SSTable files · on disk · Sequence participant SSTable files on disk Manifest · live file set · Sequence participant Manifest live file set Legend main request return async trace message