Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Implemented
-
None
-
None
-
None
Description
Currently there is no way to move replicas to a new, empty, Solr node, without manually choosing the replicas yourself, and moving/recreating the replicas. The logic we would need for this is to choose the best replicas to move to an empty Solr node, and stop when that Solr node reaches an "equilibrium" with the rest of the cluster.
This logic is very close to merely balancing the existing replicas across a given set of nodes. So instead of creating a similar command that solves a subset of use-cases, it is probably worth it to take a bit more effort and create the general balance-replicas API to solve all balancing use-cases.
The API would be quite simple. It would be something like POST "/api/cluster/replicas/balance", and it would take in a list of nodes:
{"nodes": [ "node1", "node2" ]}If no nodes were provided in the request body, then Solr would default to balancing across all data nodes.
I don't see a need to write a V1 API for this.
This requires adding method signatures to the PlacementPlugin, but we can make them default to a NO-OP, preserving compatibility for existing custom-plugins.
Attachments
Issue Links
- contains
-
SOLR-16816 AffinityPlacementPlugin should utilize the size of new replicas when making placements
- Closed
- links to