-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Expose Connection
to remote clusters
#113453
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
Expose Connection
to remote clusters
#113453
Conversation
Sometimes we might need to invoke different requests on a remote cluster depending on the version of the transport protocol it understands, but today we cannot make that distinction (without starting to execute an action on the remote cluster and failing while serializing the request at least). This commit allows callers access to the underlying `Transport.Connection` instance so that we can implement better BwC logic.
Pinging @elastic/es-distributed (Team:Distributed) |
Relates #112478: with this change, we can skip over excessively-old remote clusters without needing to rely on throwing exceptions in the request's |
Also relates #89456: if we introduce some more efficient requests than today's cluster-state-action-based ones then we need to know what wire protocol the CCR remote understands in order to know whether it will understand those newer requests. |
This may also help a wider goal of making it easier for CCS to support wider array of older versions (not resolving the issues, but making it a bit easier to address), by making the protocol we're dealing with known earlier in the game. Can't really speak much of the code inside, but I'm +1 on the general idea, and I think it would be useful for #112478. |
Pinging @elastic/es-core-infra (Team:Core/Infra) |
Do we need to expose |
Not all that easily - the We could in theory hide all this behind another interface but meh I'm not sure it's worth it. |
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.
LGTM. Thanks for adding this, David.
Sometimes we might need to invoke different requests on a remote cluster depending on the version of the transport protocol it understands, but today we cannot make that distinction (without starting to execute an action on the remote cluster and failing while serializing the request at least). This commit allows callers access to the underlying `Transport.Connection` instance so that we can implement better BwC logic.
💚 Backport successful
|
Sometimes we might need to invoke different requests on a remote cluster depending on the version of the transport protocol it understands, but today we cannot make that distinction (without starting to execute an action on the remote cluster and failing while serializing the request at least). This commit allows callers access to the underlying `Transport.Connection` instance so that we can implement better BwC logic.
Sometimes we might need to invoke different requests on a remote cluster
depending on the version of the transport protocol it understands, but
today we cannot make that distinction (without starting to execute an
action on the remote cluster and failing while serializing the request
at least). This commit allows callers access to the underlying
Transport.Connection
instance so that we can implement better BwClogic.