M1: doc-level free list, sessions, and a spec runner that no longer overstates #1
9
PLAN.md
9
PLAN.md
@@ -367,6 +367,15 @@ the filesystem, since 52% of the steady-state file is space the database owns
|
|||||||
and is not using; it needs the file never to shrink below what the fallback
|
and is not using; it needs the file never to shrink below what the fallback
|
||||||
generation references, which is its own crash-safety design pass.
|
generation references, which is its own crash-safety design pass.
|
||||||
|
|
||||||
|
**One planned commit was declined on the measurement.** A same-length replace
|
||||||
|
could be written in place when the document's bytes are on an unpublished page,
|
||||||
|
and the plan made it conditional on the update line still being the worst. It
|
||||||
|
is the worst — but the measurement says why, and it is not write amplification:
|
||||||
|
the peak is set by the first rebuild's second copy, so generating less garbage
|
||||||
|
moves the number by nothing. It would buy a write-path change, on the path that
|
||||||
|
runs after the log record is durable, for no gate movement. Left undone with
|
||||||
|
the reason, rather than done because it was listed.
|
||||||
|
|
||||||
**Small documents behave exactly as forecast**, and the forecast being written
|
**Small documents behave exactly as forecast**, and the forecast being written
|
||||||
down in advance is what makes it a result. 200-byte documents reclaim nothing
|
down in advance is what makes it a result. 200-byte documents reclaim nothing
|
||||||
at all — a 16 KiB system page holds ~70 of them and they never all die at once
|
at all — a 16 KiB system page holds ~70 of them and they never all die at once
|
||||||
|
|||||||
Reference in New Issue
Block a user