Move broker control traffic to shared-memory rings#1080
Merged
Conversation
Move active broker request and response envelopes onto paired shared control rings while retaining the authenticated Unix socket for setup, liveness, cancellation, and teardown. Transfer and validate the control-ring memfd during association setup, coordinate ring failures with existing broker workers and pending calls, and preserve setup-only versus active host channel contracts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Keep wake handles bound to a producer or consumer epoch and resolve its byte offset through the control-ring layout API instead of storing a raw offset. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Keep broker association negotiation on HostSetupChannel and remove the obsolete single-channel serve_connection path now that production active traffic uses split control-ring endpoints. Retain broker-host request execution coverage through a private test harness built from setup_connection and BrokerHostAssociation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Name setup_connection's generic and parameter after their setup-only role now that active control uses split ring endpoints. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Name the shared local and host failure fan-out state as coordinators, matching the existing runner association terminology and distinguishing them from stored errors. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Name the host active-state query after the optional terminal receive result it returns. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Name the host state check after the response path whose liveness it validates. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Use one Unix-transport conversion from ControlRingError to std::io::Error instead of a standalone mapping helper at each call site. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Stop the host request source before polling and before acknowledging a decoded request when fatal active state is already established. Preserve draining of previously published requests after clean peer closure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Serialize local request publication against failure recording and hold host active status through request acknowledgement. This prevents requests from becoming accepted after fatal state is established while preserving clean-close draining. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Hold host active status through nonblocking response publication and wake, while keeping full-ring waits outside the status lock. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ac86dd2d-0280-4d7b-87a8-5654ad1503a6
wdcui
force-pushed
the
wdcui/ulitebox/broker-control-ring-integration
branch
from
July 24, 2026 04:15
73859d3 to
213282c
Compare
wdcui
enabled auto-merge
July 24, 2026 04:15
|
🤖 SemverChecks 🤖 Click for details |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Active broker requests and responses now use paired shared-memory control rings, preserving request-ID multiplexing and bounded host dispatch. Setup transfers and validates an exact-size ring memfd, while the authenticated Unix socket remains for setup, liveness, cancellation, and teardown. Futex-backed waits and 128-byte slots keep the ring efficient and bounded by the protocol's maximum encoded message size.