gabriel / musehub public
perf patch feat/pack-concurrency-semaphore #1 / 1
AI Agent gabriel · 70 days ago · Apr 12, 2026 · Diff

perf: add asyncio.Semaphore(64) to cap concurrent R2 puts in pack endpoint

Without a bound, asyncio.gather fires all coroutines simultaneously and they compete through the backend's HTTP connection pool (~10-20 conns to R2). This makes 1000 object packs take >60s, exceeding nginx timeout.

Semaphore(64) saturates the pool without excessive queuing and keeps wall-clock time well within the 60s nginx upstream timeout for packs of ≤ 250 objects (the new client-side default).

sha256:fd981c0edfa24777810050f98b0a0b125b44c257974741b2e87479a402b30caa sha
sha256:9ea64f9f35e7b4f55916766324cf3025daea202c82addf34c8b8976a71001722 snapshot
← Older Oldest on feat/pack-concurrency-semaphore
All commits
Newer → Latest on feat/pack-concurrency-semaphore

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:fd981c0edfa24777810050f98b0a0b125b44c257974741b2e87479a402b30caa --body "your comment"