eviction
eviction
#
Keeping the store under budget by evicting the least valuable bytes first.
An object's value is its use rate times the compute it spares, per byte:
effective_score × compute_seconds / size_bytes. The use score is a leaky
integrator over accesses, so the ranking is the greedy knapsack over
compute-seconds saved per second per byte. Objects a kept name holds or a
living process pins are never candidates.
bumped_score(row, now)
#
row's use score after one more access at now.
Source code in capturegraph-lib/capturegraph/recipes/scratch/store/eviction.py
density(row, now)
#
Compute-seconds row saves per second, per byte it occupies.
Source code in capturegraph-lib/capturegraph/recipes/scratch/store/eviction.py
effective_score(row, now)
#
row's use score decayed to now.
evict(scratch)
#
Delete the lowest-density unheld objects until the store fits its budget.