Skip to main content

Module cache_rejection

Module cache_rejection 

Source
Expand description

Why a persisted cache was refused, shared by the extraction cache, the graph cache, the perf table, and fallow doctor. Why a persisted cache was not reused.

Both persistent caches (the extraction blob in fallow-extract and the module-graph blob in fallow-graph) used to collapse every refusal into None, so a run that paid full deserialisation cost and then reused nothing looked exactly like a run with no cache at all. The reason is a measurement, not an internal detail: it decides whether a user should fix a config drift, delete a corrupt blob, or accept a legitimate cold run.

The variants split by WHO decided. Absent through RootMismatch are decided inside a loader, before it hands a store back. ModeMismatch through FingerprintChanged are decided by the caller after the load succeeded, which is exactly the case that costs the most and used to say the least.

Enumsยง

CacheRejection
Why a cache load or a cache comparison refused to reuse persisted work.