[
https://issues.apache.org/jira/browse/SOLR-15803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17454245#comment-17454245
]
Houston Putman commented on SOLR-15803:
---------------------------------------
I have added a unit test that tests this new logic, and makes sure that a good
skew is seen when using the ReplaceNode command. I have also tested this
manually with a good number of configurations, and have yet to see any issues.
I'm planning on committing this by the end of the week, in case anyone is
interested in taking a look or critiquing.
> 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: 0.5h
> 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]