Have Lookup check the disk for variants held in memory too (closes #70)
check / check (push) Successful in 3m36s

Lookup again counts a variant as present only when its file exists.
Treating a variant held in memory as present saved one check of the
disk, but no test covered it, and GetVariant opens the file anyway.

Model: opus-5-5
This commit is contained in:
2026-09-29 07:30:24 +00:00
parent 7f358602e4
commit fa3af3c72e
2 changed files with 10 additions and 12 deletions
+6 -6
View File
@@ -34,12 +34,12 @@ exhaustion
`Cache.metaCache` holds the content types of up to 10,000 variants in an LRU
(`github.com/hashicorp/golang-lru/v2`), filled by `StoreVariant` and by
`GetVariant` after it reads a `.meta` file, where a type `StoreVariant` added
meanwhile is kept over the one read; for a variant it holds, `Lookup`
skips the check of the disk and `GetVariant` skips the `.meta` read, still
opening the variant file and taking the size from it; eviction removes the
entry before deleting the files, and `GetVariant` removes it when the file
will not open; the cap is a constant, not a setting; the unused `variantMeta`
type is gone; `README.md` describes it.
meanwhile is kept over the one read; for a variant it holds, `GetVariant`
skips the `.meta` read, still opening the variant file and taking the size
from it; eviction removes the entry before deleting the files, and
`GetVariant` removes it when the file will not open; the cap is a constant,
not a setting; the unused `variantMeta` type is gone; `README.md` describes
it.
- 2026-09-29 Dockerfiles install through `script/bootstrap` (closes #95): the
`Dockerfile` lint and build stages and `Dockerfile.lint` copy `script/`,
`go.mod` and `go.sum`, then run `script/bootstrap` in place of their own
+4 -6
View File
@@ -159,15 +159,13 @@ type LookupResult struct {
CacheStatus CacheStatus
}
// Lookup checks if a processed variant exists on disk: a variant held
// in metaCache counts as present without a check of the disk. Hits
// touch the variant's LRU timestamp; a disabled cache always misses.
// Lookup checks if a processed variant exists on disk. Hits touch the
// variant's LRU timestamp; a disabled cache always misses.
func (c *Cache) Lookup(ctx context.Context, req *ImageRequest) (*LookupResult, error) {
cacheKey := CacheKey(req)
// Check memory, then variant storage - no DB needed for cache hits
if !c.disabled &&
(c.metaCache.Contains(cacheKey) || c.variants.Exists(cacheKey)) {
// Check variant storage directly - no DB needed for cache hits
if !c.disabled && c.variants.Exists(cacheKey) {
c.touchVariant(ctx, cacheKey)
return &LookupResult{