Skip to content

Support separate client and peer cluster endpoints - #2108

Draft
Mathieu Tremblay (Mathos1432) wants to merge 2 commits into
mainfrom
users/matrembl/dual-endpoints
Draft

Support separate client and peer cluster endpoints#2108
Mathieu Tremblay (Mathos1432) wants to merge 2 commits into
mainfrom
users/matrembl/dual-endpoints

Conversation

@Mathos1432

@Mathos1432 Mathieu Tremblay (Mathos1432) commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Support per-node client port translation while retaining direct peer endpoints. Adds optional client IP address, port, and hostname settings for CLUSTER NODES, CLUSTER SLOTS, CLUSTER SHARDS, MOVED, and ASK.

Peer gossip, replication, migration, and failover keep using internal endpoints. Unset options preserve existing behavior. Client metadata uses an optional extension after the unchanged version 1 configuration prefix. Upgrade all nodes before relying on translated endpoints; older nodes ignore the extension and advertise peer endpoints.

Fixes #2107.

Validation

  • Garnet .NET CI was triggered automatically for this draft.
  • dotnet build Garnet.slnx -c Debug: passed for both target frameworks, no warnings.
  • dotnet format Garnet.slnx --no-restore --verify-no-changes: passed.
  • Full Debug net10.0 suites: Garnet.test 1,073 passed and 3 skipped; Garnet.test.cluster 175 passed; Garnet.test.cluster.replication 107 passed; Garnet.test.cluster.migrate 56 passed.
  • Coverage includes command-line and embedded validation, client discovery and redirects, legacy configuration compatibility, restart, metadata refresh, replication, failover, and migration with separate endpoints.

Assisted-By: GitHub Copilot

Support per-node port translation without changing peer traffic or the required cluster configuration prefix.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 344fb382-6217-4cdf-ad7e-7889d571811e
Align declarations, validation, tests, comments, and documentation with surrounding upstream style without changing endpoint behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 344fb382-6217-4cdf-ad7e-7889d571811e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support separate client and peer cluster endpoints

1 participant