feat(shard-distributor): add canary gRPC protocol for executor-to-executor pings#7475
Merged
jakobht merged 1 commit intocadence-workflow:masterfrom Nov 26, 2025
Merged
Conversation
09a7dcf to
626154e
Compare
Define ShardDistributorExecutorCanaryAPI service that allows one executor to ping another executor that owns a specific shard. This is used for canary testing to verify that: 1. Executors can route to each other based on shard ownership 2. Shard ownership information is accurate 3. The shard distributor is functioning correctly The Ping RPC takes a shard key and namespace, and returns whether the receiving executor owns that shard along with the executor ID. Signed-off-by: Jakob Haahr Taankvist <jht@uber.com>
626154e to
1115b5b
Compare
This was referenced Nov 25, 2025
eleonoradgr
approved these changes
Nov 26, 2025
jakobht
added a commit
that referenced
this pull request
Nov 30, 2025
…checks (#7486) Depends on #7475 being merged **What changed?** Added server-side ping handler for canary health checks in the shard distributor. The handler responds to ping requests from other executors, verifying shard ownership. **Why?** Enables executor-to-executor health verification in the canary system. The ping handler allows executors to check if peer executors own specific shards and are functioning correctly. **How did you test it?** Unit tests **Potential risks** **Release notes** **Documentation Changes** --------- Signed-off-by: Jakob Haahr Taankvist <jht@uber.com>
jakobht
added a commit
that referenced
this pull request
Dec 2, 2025
…ip verification (#7487) Depends on #7475 and #7478 being merged **What changed?** Added canary pinger component that periodically sends ping requests to shard owners to verify executor-to-executor communication and shard ownership. **Why?** The canary pinger provides active monitoring of the shard distributor's routing and ownership mechanisms by: - Periodically selecting random shards and pinging their owners - Verifying that the pinged executor owns the shard - Detecting communication failures between executors This is part of the canary ping/pong implementation that validates end-to-end executor-to-executor gRPC communication. **How did you test it?** Unit tests **Potential risks** **Release notes** **Documentation Changes** --------- Signed-off-by: Jakob Haahr Taankvist <jht@uber.com>
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.
What changed?
Added
ShardDistributorExecutorCanaryAPIservice with aPingRPC method. Includes proto definition and generated Go code.Why?
Enable canary testing to verify executor-to-executor communication and shard ownership accuracy. The Ping RPC allows one executor to ping another that owns a specific shard, validating:
How did you test it?
Proto compiles successfully and generates valid Go code. Will be used by canary components in follow-up PRs.
Potential risks
None - this only adds a proto definition with no implementation yet.
Release notes
Documentation Changes
None