bkt icon indicating copy to clipboard operation
bkt copied to clipboard

Clean up cached data linked to old file modtimes

Open dimo414 opened this issue 2 years ago • 1 comments

Now that --modtime is supported it's possible for a cached invocation to become functionally unreachable[^1] but remain in the cache for an extended period of time. For example:

bkt --ttl=1d --modtime=.git/FETCH_HEAD -- git status

Any cached status will become unreachable whenever FETCH_HEAD is updated (i.e. after git fetch / git pull) but presently bkt can't actually clean up the data until the TTL expires. In principle bkt could clean up all existing cached data linked to a given file whenever its modtime changes.

Furthermore, if this functionality is added such commands could be allowed to not set a TTL at all (if they want) and simply rely on modtime invalidation.

This would be a somewhat sizable refactoring of the Bkt and Cache APIs, but it's probably worth the effort.

[^1]: yes a file could theoretically be set to a prior modtime, either manually or after a clock change, but this is uncommon and a cache miss in such circumstances is probably acceptable.

dimo414 avatar Apr 02 '23 21:04 dimo414

Anyone interested in this feature is invited to weigh in on #48 as well

dimo414 avatar Oct 31 '23 18:10 dimo414