Space reconciliation passes by ten times the last pass's time (closes #250)
check / check (push) Canceled after 0s

The reconciliation pass reads a row and stats a file for every cached
file, and it ran on every eviction tick, so on a large cache a pass
longer than the tick was followed by the next one at once. It still runs
at startup and is considered on each tick, but it now starts no sooner
than ten times as long after the last pass ended as that pass took, so
it takes at most about a tenth of the time however large the cache.
Eviction and the removal of expired negative cache rows still run on
every tick. The comments that bound the drift, and README.md, give the
new bound. No existing test changed.

Model: opus-5-5
This commit was merged in pull request #279.
This commit is contained in:
2026-10-19 05:00:48 +02:00
parent 0ab15324f7
commit 9eacfa6406
4 changed files with 137 additions and 23 deletions
+3
View File
@@ -30,6 +30,9 @@ P2: security: per-origin rate limiting
# Completed Steps
- 2026-10-18 the next reconciliation pass waits at least ten times as long as
the last one took, so passes on a large cache no longer run back to back
(closes #250).
- 2026-10-18 a `blocked_networks` entry in the IPv4-mapped form refused nothing;
`::ffff:10.0.0.0/104` is now read as `10.0.0.0/8`, and such an entry shorter
than `/96` aborts startup (closes #301).