Serve the /api/v1/stats prefix distribution from memory (closes #30) #50

Merged
clawbot merged 1 commits from issue-30-prefix-distribution into next 2026-10-03 18:43:59 +02:00
1 Commits
Author SHA1 Message Date
sneak 14c25ee238 Serve the /api/v1/stats prefix distribution from memory (closes #30)
check / check (push) Successful in 2m56s
The prefix distribution was the last query on the stats path. It read one
index entry per live route on every request, so on a large database it took
the whole 4-second deadline and /api/v1/stats answered 500.

The distribution now lives next to the in-memory counts: seeded once at
startup from the same query, then kept exact by every live-route write. A new
route whose prefix had no live route adds one at its mask length; a delete
that leaves a prefix with no live route takes one away. Each check is one
lookup on the prefix index, made only for new and removed routes, within the
same write. The single-route delete now runs its delete and that lookup in one
transaction, so a failed lookup cannot leave the counts off.

Model: opus-5-5
2026-10-03 16:01:32 +00:00