Builder and checker read tools read only what they answer, in parallel and bounded (issue 1827) #55

Merged
mesh-tools merged 1 commits from fix/1827-bounded-reads into main 2026-10-25 23:44:25 +00:00
Member

Issue 1827, notes 3-5. On shanks, 2026-10-26 00:28-00:33, builder_stuck did not answer within 30 s twice. It listed builds (3896 keys) and three steps buckets (mesh-build-node_steps 10034 keys), with a Get and a History per key, one round trip at a time and unbounded. The checker's read tools have the same shape. mesh-delivery #52 fixed this kind in the view; this is the third meeting of it.

The change, in eight instances:

  • builder_stuck: filters by module key first and reads 16 values at a time, capped at 1000 with a cut note. History is read only for kept rows. Steps are found by an id index.
  • checker_kept, checker_verdicts, checker_previews: filter by key first, parallel reads, cap 1000 with cut and note.
  • checker_pull: reads candidates in parallel batches, stopping at the batch that holds the pull.
  • checker_status: reads steps newest first, capped per bucket.
  • AskTry: reads only the newest 64 tries.
  • Every tool call logs one line with rows read and time.

Rule bent: the small parallel helper is copied in the builder and the checker rather than moved into mesh-sdk. A few lines do not earn a group delivery.

Tests, run locally (the check does not gate):

  • unit with -race: pass in both modules
  • go vet -tags integration: clean
  • integration on internal/build, internal/check and cmd/...: pass

The reviewer ran the new tests against main's code: both fail there.

Not blocking, noted on issue 1827: the order of AskTry's newest 64 tries is not covered by a test.

Acceptance after delivery: mesh-delivery-builder.builder_stuck answers on shanks within a few seconds.

Reviewed-by: review-reads-del@shanks at 9db15c7cf4

Issue 1827, notes 3-5. On shanks, 2026-10-26 00:28-00:33, builder_stuck did not answer within 30 s twice. It listed builds (3896 keys) and three steps buckets (mesh-build-node_steps 10034 keys), with a Get and a History per key, one round trip at a time and unbounded. The checker's read tools have the same shape. mesh-delivery #52 fixed this kind in the view; this is the third meeting of it. The change, in eight instances: - builder_stuck: filters by module key first and reads 16 values at a time, capped at 1000 with a cut note. History is read only for kept rows. Steps are found by an id index. - checker_kept, checker_verdicts, checker_previews: filter by key first, parallel reads, cap 1000 with cut and note. - checker_pull: reads candidates in parallel batches, stopping at the batch that holds the pull. - checker_status: reads steps newest first, capped per bucket. - AskTry: reads only the newest 64 tries. - Every tool call logs one line with rows read and time. Rule bent: the small parallel helper is copied in the builder and the checker rather than moved into mesh-sdk. A few lines do not earn a group delivery. Tests, run locally (the check does not gate): - unit with -race: pass in both modules - go vet -tags integration: clean - integration on internal/build, internal/check and cmd/...: pass The reviewer ran the new tests against main's code: both fail there. Not blocking, noted on issue 1827: the order of AskTry's newest 64 tries is not covered by a test. Acceptance after delivery: mesh-delivery-builder.builder_stuck answers on shanks within a few seconds. Reviewed-by: review-reads-del@shanks at 9db15c7cf4fc98b5cd453a30aa47f00b74575992
mesh-tools added 1 commit 2026-10-25 23:43:35 +00:00
Builder and checker read tools read only the keys they need, in parallel, at most 1000 a call (issue 1827)
mesh/check checking 9db15c7cf4fc on b842b9422d2a
mesh/delivery merged: source.main moved to novox/mesh-delivery@b842b9422d2a
9db15c7cf4
builder_stuck, checker_kept, checker_verdicts, checker_status, checker_previews, checker_pull and checker_try listed a
bucket of thousands of keys and read each value (builder_stuck also its history) one round trip at a time before
filtering, so they timed out at 30 s. Now keys are narrowed by what the key carries first, history is read only for rows
kept, values are read sixteen at a time, at most 1000 a call with the answer saying it was cut, steps newest first, a new
try reads only the newest 64 tries, and each tool logs the values read and the time taken. Same kind as the view's fix
(PR 52); the helper is copied, not put in mesh-sdk, as a few lines do not earn a group delivery.
Author
Member

Delivery novox/mesh-delivery@9db15c7cf4fc — merged since 2026-10-25T23:44:27Z

Source — source.main moved to novox/mesh-delivery@b842b9422d. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-10-25 23:43 (new) → proposed (announced): novox/mesh-delivery#55's head announced
  • 2026-10-25 23:43 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-10-25 23:44 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-delivery@9db15c7cf4fc` — **merged** since 2026-10-25T23:44:27Z **Source** — source.main moved to novox/mesh-delivery@b842b9422d2a. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-10-25 23:43 (new) → proposed (announced): novox/mesh-delivery#55's head announced - 2026-10-25 23:43 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-10-25 23:44 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit b842b9422d into main 2026-10-25 23:44:25 +00:00
mesh-tools deleted branch fix/1827-bounded-reads 2026-10-25 23:44:26 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-delivery#55