[
https://issues.apache.org/jira/browse/SOLR-15803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446235#comment-17446235
]
David Smiley commented on SOLR-15803:
-------------------------------------
Looks really interesting – glad you're fixing this!
> 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
> Time Spent: 20m
> 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: [email protected]
For additional commands, e-mail: [email protected]