Skip to content

Commit c18e7d0

Browse files
committed
doc: describe the permit bound as the fraction it now is
The design document described the permit fraction in nano-fractions of the worker count. The parameter is a plain `f64` fraction, so the description matches what an operator sets.
1 parent f713ca2 commit c18e7d0

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

doc/developer/design/20260825_peek_execution.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -406,18 +406,19 @@ Four parameters:
406406
whose rows are bound for the stash suspends once its accumulation crosses
407407
`peek_response_stash_threshold_bytes`, by far the smaller trigger at that
408408
parameter's default, so such a walk yields per batch.
409-
* **Permit fraction**, default one permit per timely worker, expressed in
410-
nano-fractions of the worker count the way Kubernetes expresses a CPU share.
411-
How many promoted scans may run at once. It bounds running scans and nothing
412-
else, and the queue that forms behind it is a signal rather than a second
413-
bound.
409+
* **Permit fraction**, default `1.0`, a fraction of the timely workers a compute
410+
runtime runs. How many promoted scans may run at once, floored at one scan.
411+
Expressed as a fraction so the bound scales with the replica rather than being
412+
retuned per size. It bounds running scans and nothing else, and the queue that
413+
forms behind it is a signal rather than a second bound.
414414

415415
A peek passed over for want of budget is served before the peeks that were served
416-
ahead of it, which takes two pieces beyond the counters. The sweep records the
417-
uuid it stopped at and the next sweep rotates the pending peeks to start there, so
418-
serving them in uuid order alone cannot let a later arrival with a lower uuid take
419-
a passed-over peek's turn. A stale resume point is harmless, since a uuid that has
420-
since been answered still names where in the ordering to resume.
416+
ahead of it, which the pending peeks carry themselves. They are a queue: a sweep
417+
drains it from the front and returns what it could not retire to the back, so the
418+
order that survives a sweep is the order the next one owes, and a peek arriving
419+
later queues behind one that has already waited. Holding them keyed by uuid
420+
instead would let a later arrival with a lower uuid take a passed-over peek's
421+
turn, and do so on every activation.
421422

422423
The worker also has to get back to such a peek, and nothing else brings it there:
423424
the peeks that spent the budget were answered or promoted, and neither leaves an
@@ -651,7 +652,7 @@ Seven layers, bottom to top. The first two have merged.
651652
its Added and Deleted sections describe the end state the layers below reach.
652653

653654
#38158 is absorbed rather than merged separately. It is unmerged upstream, and the
654-
`PeekError` type it introduces is what `ScanOutcome::Failed(PeekError)` assumes,
655+
`PeekError` type it introduces is what the `Err` side of a finished `ScanOutcome` assumes,
655656
so carrying it as a layer of this stack is what lets every layer above it name a
656657
structured error at all. Its `merge_peek_responses` precedence is the one this
657658
design inherits rather than rewrites.

0 commit comments

Comments
 (0)