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.
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.

Model: opus-5-5
This commit is contained in:
2026-10-18 23:21:26 +00:00
parent 7f7df9f63c
commit 795cf2fe56
3 changed files with 51 additions and 23 deletions
+2
View File
@@ -30,6 +30,8 @@ P2: security: per-origin rate limiting
# Completed Steps
- 2026-10-18 the next reconciliation pass waits 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-16 P1 security bug: the check that keeps pixa from fetching internal
addresses refuses the local-use NAT64 range (`64:ff9b:1::/48`, RFC 8215) as it
refuses `64:ff9b::/96`, and refuses an IPv6 address in the IPv4-compatible