A collections page fires 100+ concurrent poster requests. Both image proxies (/image and /person-image) authenticated via current_user + Depends(get_db), holding a pooled DB connection for the whole request — including the slow Plex/ CDN fetch. Under the burst, the 15-connection pool was exhausted → QueuePool checkout timeouts → 502s → slow, partially-loaded grids on prod. Fix: authenticate these two high-fan-out endpoints with a signed-session check (no DB user-load), serve disk-cache hits with zero DB access, and on a cold miss open a short session only to resolve the image key + Plex config, releasing it BEFORE the fetch (image_bytes uses no DB). Also raise the pool (20 + 30 overflow) as headroom above the sync-endpoint threadpool.
1 line
7 B
Text
1 line
7 B
Text
0.28.1
|