Skip to content
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

Closed
s1monw opened this issue Jul 5, 2018 · 1 comment
Closed

Extract connection state from Transport #31835

s1monw opened this issue Jul 5, 2018 · 1 comment
Assignees
Labels
:Distributed/Network Http and internode communication implementations >enhancement

Comments

@s1monw
Copy link
Contributor

s1monw commented Jul 5, 2018

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

@s1monw s1monw added >enhancement :Distributed/Network Http and internode communication implementations labels Jul 5, 2018
@s1monw s1monw self-assigned this Jul 5, 2018
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra

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
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 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
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.
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
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.
jasontedor pushed a commit that referenced this issue Aug 21, 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.
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
:Distributed/Network Http and internode communication implementations >enhancement
Projects
None yet
Development

No branches or pull requests

2 participants