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

Houston Putman updated SOLR-15803:
----------------------------------
    Attachment: Screen Shot 2021-12-16 at 1.23.40 PM.png

> Allow AssignStrategy to process multiple AssignRequests with 
> cross-coordination
> -------------------------------------------------------------------------------
>
>                 Key: SOLR-15803
>                 URL: https://issues.apache.org/jira/browse/SOLR-15803
>             Project: Solr
>          Issue Type: Improvement
>          Components: SolrCloud
>            Reporter: Houston Putman
>            Assignee: Houston Putman
>            Priority: Major
>         Attachments: Screen Shot 2021-12-16 at 1.23.40 PM.png
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> When doing testing for SOLR-15795, I found that if you have an empty node 
> when running the REPLACENODE command, then many times all replicas will be 
> placed on that same node, even if it doesn't result in an even distribution 
> in your cluster.
> When looking at the code, it made sense. The ReplaceNodeCmd goes through a 
> loop for every replica on the sourceNode, and uses the AssignStrategy class 
> to assign a node for each replica, using the clusterstate. However, the 
> clusterstate does not change between these replicas, so the most advantageous 
> node for 1 replica, is likely going to be the most advantageous for many 
> replicas given the same cluster state. Therefore all replicas were being 
> scheduled for the same node in my testing.
> An easy (in theory) solution is to let AssignStrategy take a list of 
> AssignRequests in assign(), and each request in this list will account for 
> the replicaPlacements decided for the previous requests in the list. That 
> way, the ReplaceNodeCmd can create it's list of AssignRequests, and issue 
> them all at once to AssignStrategy, which will come up with the _optimal_ 
> plan for all replicas *together*.
> Because this is an API in assignStrategy, it will work with the new 
> autoscaling APIs or using the legacy assign strategy.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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

Reply via email to