[ 
https://issues.apache.org/jira/browse/SOLR-16806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17733154#comment-17733154
 ] 

ASF subversion and git services commented on SOLR-16806:
--------------------------------------------------------

Commit de5d1aaec7d5269ebd60ba8e73f06dc31a98887d in solr's branch 
refs/heads/main from Houston Putman
[ https://gitbox.apache.org/repos/asf?p=solr.git;h=de5d1aaec7d ]

SOLR-16806: Create a BalanceReplicas API (#1650)

- Introduce BalanceReplicasAPI
- Add computeReplicaBalancing() in Assign, and computeBalancing() in 
PlacementPlugin.
  The default implementation returns an empty balancePlan (moving no replicas).
- Refactor all provided PlacementPlugins, to implement 
OrderedNodePlacementPlugin,
  and share a common way of computing placements and balancing.

Also fixes SOLR-16816, updating metrics when doing multi-shard/collection 
placements.

> Add a BalanceReplicas API
> -------------------------
>
>                 Key: SOLR-16806
>                 URL: https://issues.apache.org/jira/browse/SOLR-16806
>             Project: Solr
>          Issue Type: Sub-task
>            Reporter: Houston Putman
>            Priority: Major
>          Time Spent: 6h 50m
>  Remaining Estimate: 0h
>
> 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. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to