Past the 10,000-frame ceiling, the checkpoint worker held writes until the WAL was checkpointed and truncated. An outside read transaction (sqlite3, a backup) can stop both indefinitely, so every server write waited for the reader to end. The worker now admits writes when holding them cannot help: when a forced PASSIVE checkpoint stops short of the frames it saw, or when TRUNCATE fails under the gate. The ceiling becomes a pending verdict the worker clears for each generation, so writes past it still wait for one checkpoint and truncate attempt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Julius Marminge committed on 10/22/2026, 8:43:11 AMparent9ab6ed5
1 file changedLine totals unavailable