You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Houston Putman (Jira)" <ji...@apache.org> on 2023/06/14 15:42:00 UTC

[jira] [Updated] (SOLR-16806) Add a BalanceReplicas API

     [ https://issues.apache.org/jira/browse/SOLR-16806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Houston Putman updated SOLR-16806:
----------------------------------
    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/balanceReplicas"{*}, 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. 

  was:
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 {*}PUT "/api/cluster/balanceReplicas"{*}, 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. 


> 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 40m
>  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/balanceReplicas"{*}, 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-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org