-
Notifications
You must be signed in to change notification settings - Fork 24.9k
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
Extract connection state from Transport #31835
Labels
Comments
s1monw
added
>enhancement
:Distributed Coordination/Network
Http and internode communication implementations
labels
Jul 5, 2018
Pinging @elastic/es-core-infra |
This was referenced Jul 5, 2018
Tim-Brooks
added a commit
that referenced
this issue
Aug 13, 2018
This is related to #31835. This commit adds a connection manager that manages client connections to other nodes. This means that the TcpTransport no longer maintains a map of nodes that it is connected to.
Tim-Brooks
added a commit
that referenced
this issue
Aug 15, 2018
This is related to #31835. It moves the default connection profile into the ConnectionManager class. The will allow us to have different connection managers with different profiles.
Tim-Brooks
added a commit
to Tim-Brooks/elasticsearch
that referenced
this issue
Aug 17, 2018
This is related to elastic#31835. This commit adds a connection manager that manages client connections to other nodes. This means that the TcpTransport no longer maintains a map of nodes that it is connected to.
Tim-Brooks
added a commit
that referenced
this issue
Aug 18, 2018
Tim-Brooks
added a commit
to Tim-Brooks/elasticsearch
that referenced
this issue
Aug 18, 2018
This is related to elastic#31835. It moves the default connection profile into the ConnectionManager class. The will allow us to have different connection managers with different profiles.
Tim-Brooks
added a commit
that referenced
this issue
Aug 19, 2018
s1monw
added a commit
to s1monw/elasticsearch
that referenced
this issue
Aug 20, 2018
This change introduces a dedicated ConnectionManager for every RemoteClusterConnection such that there is not state shared with the TransportService internal ConnectionManager. All connections to a remote cluster are isolated from the TransportService but still uses the TransportService and it's internal properties like the Transport, tracing and internal listener actions on disconnects etc. This allows a remote cluster connection to have a different lifecycle than a local cluster connection, also local discovery code doesn't get notified if there is a disconnect on from a remote cluster and each connection can use it's own dedicated connection profile which allows to have a reduced set of connections per cluster without conflicting with the local cluster. Closes elastic#31835
jasontedor
pushed a commit
that referenced
this issue
Aug 21, 2018
jasontedor
pushed a commit
that referenced
this issue
Aug 21, 2018
s1monw
added a commit
that referenced
this issue
Aug 21, 2018
This change introduces a dedicated ConnectionManager for every RemoteClusterConnection such that there is not state shared with the TransportService internal ConnectionManager. All connections to a remote cluster are isolated from the TransportService but still uses the TransportService and it's internal properties like the Transport, tracing and internal listener actions on disconnects etc. This allows a remote cluster connection to have a different lifecycle than a local cluster connection, also local discovery code doesn't get notified if there is a disconnect on from a remote cluster and each connection can use it's own dedicated connection profile which allows to have a reduced set of connections per cluster without conflicting with the local cluster. Closes #31835
s1monw
added a commit
that referenced
this issue
Aug 23, 2018
This change introduces a dedicated ConnectionManager for every RemoteClusterConnection such that there is not state shared with the TransportService internal ConnectionManager. All connections to a remote cluster are isolated from the TransportService but still uses the TransportService and it's internal properties like the Transport, tracing and internal listener actions on disconnects etc. This allows a remote cluster connection to have a different lifecycle than a local cluster connection, also local discovery code doesn't get notified if there is a disconnect on from a remote cluster and each connection can use it's own dedicated connection profile which allows to have a reduced set of connections per cluster without conflicting with the local cluster. Closes #31835
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Today we keep all state related to what node we are connected etc. inside Transport / TCPTransport. This make it difficult to connect to nodes with different profiles ie. for CCS vs. local cluster (zen) connection. We should move the connection state out of Transport such that the caller can decide who owns the state and what profile is used for the connection.
/cc @tbrooks8 @jasontedor
The text was updated successfully, but these errors were encountered: