Have Lookup check the disk for variants held in memory too (closes #70)

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 09:28:38 +00:00
parent 77e9c9cd7f
commit c7e4eacd87
2 changed files with 10 additions and 12 deletions
+6 -6
View File
@@ -33,12 +33,12 @@ P2: security: referer blacklist
`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 maintenance mode refuses image requests (closes #71): while
`maintenance_mode` is on, `/v1/image/` and `/v1/e/` answer 503 with a
`Retry-After` header and the JSON error body, from one middleware in
+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{