-
-
Notifications
You must be signed in to change notification settings - Fork 405
Run-ahead verify-window admission, stale-tail discard, and a jitter-capable wire model #1409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Open
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
afc2eb9
Add run-ahead verify-window admission and wire jitter conditioning
danielwinterw 2fc65b3
Cancel the stale run-ahead tail with a wire-level discard
danielwinterw 7ecaba4
config: record verify_window_runahead_tokens in the defaults UI schem…
danielwinterw 228b25a
chore: rustfmt, move StaleWindowDiscard above the test module, regen …
danielwinterw dcd1fa4
review: gate the discard wire kind on stage generation 5, allow runah…
danielwinterw c1110d9
review: hard run-ahead budget past the first window, unblock reader d…
danielwinterw 243d050
review: serialize the discard writer with teardown, bound the reader …
danielwinterw a8eeaa7
review: release a reader parked on the byte ceiling when the connecti…
danielwinterw b60599e
review: independent per-lane jitter streams, tighter read-ahead ceili…
danielwinterw File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[P1] Negotiate this wire kind before sending it. This adds kind 23 while
STAGE_STATE_VERSIONremains 11 andSTAGE_PROTOCOL_GENERATIONremains 4, so a released/current stage peer advertising generation 4 is still eligible. Once run-ahead diverges, the new coordinator sends this kind and the olderWireMessageKind::try_fromrejects it asunknown stage message kind, tearing down the request connection. The sender being opt-in does not establish receiver support. Please either advertise/gate on a dedicated discard capability across every stage, or bump the stage generation and make split planning exclude older peers.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in f632e71 by bumping STAGE_PROTOCOL_GENERATION to 5 (feature token stage-generation-5), so split planning excludes peers that cannot parse kind 23. I took the generation bump rather than a dedicated capability: the generation token is the existing mechanism for current-generation frames, and a per-peer capability would need plumbing from mesh split planning into the embedded frontend's send path. Trade-off is that a run-ahead coordinator will not split with older peers at all instead of degrading with discard off. If mixed-version meshes need to keep working, I can do the capability route as a follow-up.