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

WIP draft for ClusterStateReusingStreamInput #77982

Conversation

DaveCTurner
Copy link
Contributor

We read various objects from the wire that already exist in the cluster
state. The most notable is DiscoveryNode which can consume ~2kB in
heap for each fresh object, but rarely changes, so it's pretty wasteful
to use fresh objects here. There could be thousands (millions?) of
DiscoveryNode objects in flight from various TransportNodesAction
responses.

This branch introduces ClusterStateReusingStreamInput which lets the
caller capture an appropriate ClusterState from which to re-use
DiscoveryNode objects if appropriate.

Relates #77266

We read various objects from the wire that already exist in the cluster
state. The most notable is `DiscoveryNode` which can consume ~2kB in
heap for each fresh object, but rarely changes, so it's pretty wasteful
to use fresh objects here. There could be thousands (millions?) of
`DiscoveryNode` objects in flight from various `TransportNodesAction`
responses.

This branch introduces `ClusterStateReusingStreamInput` which lets the
caller capture an appropriate `ClusterState` from which to re-use
`DiscoveryNode` objects if appropriate.

Relates elastic#77266
@DaveCTurner DaveCTurner added the :Distributed Coordination/Allocation All issues relating to the decision making around placing a shard (both master logic & on the nodes) label Sep 19, 2021
@DaveCTurner
Copy link
Contributor Author

Superseded by #77991

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed Coordination/Allocation All issues relating to the decision making around placing a shard (both master logic & on the nodes) v8.0.0-beta1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants