Drop an update only when its handler's queue is full (closes #229)
check / check (push) Canceled after 0s

The streamer dropped a random share of a handler's updates once its
queue was half full. When the feed paused and then sent its backlog
while the routing table's Overview walked every prefix, the prefix
handler lost about 10,000 updates with its queue never full.

The streamer now drops an update only when the queue is full. The
prefix handler's queue holds 100,000 messages, about 100 MiB, so it
can hold such a backlog. The README's Memory and Feed handling
sections give the new sizes and the rule.

Model: opus-5-5
This commit is contained in:
2026-11-03 16:36:19 +00:00
parent 742e75914c
commit 3d44848af2
5 changed files with 100 additions and 60 deletions
+8
View File
@@ -57,6 +57,14 @@ problem the run finds.
# Completed Steps
- 2026-11-03: the streamer drops an update for a handler only when that
handler's queue is full. It used to drop a random share of the updates once
the queue was half full. The prefix handler's queue now holds 100,000
messages, about 100 MiB. It used to hold 20,000. While the routing table's
`Overview` walks every prefix, the prefix handler applies updates more slowly.
In a run on the live feed, the feed paused during such a walk and then sent
its backlog. The streamer then dropped about 10,000 of the prefix handler's
updates (closes #229)
- 2026-11-02: `README.md` is rewritten from scratch, sentence by sentence,
against the rules of https://git.eeqj.de/sneak/routewatch/issues/157. Every
statement was checked against the code on `next` (closes #157)