perf: warm full connection pool at startup, not just one connection (#1287)
the pool warmup (added in #1025) only opened a single connection.
with pool_size=10, the other 9 connections still hit TCP+SSL setup
on the first burst of requests after deploy. logfire traces show 17
simultaneous connect events taking 1.5-5.5s each during deploys,
causing simple PK lookups to take 12s+ while connections queue up.
fix: warm all pool_size connections concurrently at startup using
asyncio.gather. connections execute SELECT 1 then return to the pool
ready for immediate use. partial failures are logged but don't block
startup.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
authored by