Space reconciliation passes by ten times the last pass's time (closes #250)
check / check (push) Canceled after 0s
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:
@@ -199,7 +199,11 @@ into place, so a crash leaves no file under its own name with part of its data.
|
||||
When pixa starts, and every five minutes after, it removes each cached source or
|
||||
transformed image whose file is empty, or not the size the database records for
|
||||
it, with a warning naming the file; the next request for it fetches the source
|
||||
or converts the image again.
|
||||
or converts the image again. Looking for those files reads the database once for
|
||||
every cached file, so pixa skips each five-minute look that would start less
|
||||
than ten times as long after the last look ended as that look took. After a look
|
||||
that took one minute, the next one starts 10 to 15 minutes after that look
|
||||
ended.
|
||||
|
||||
pixa's target is 1-5k r/s, which has not been measured at that rate (see Load
|
||||
Test). Toward it, pixa keeps in memory the content types of the 10,000
|
||||
|
||||
Reference in New Issue
Block a user