[ https://issues.apache.org/jira/browse/SOLR-12495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16518476#comment-16518476 ]
Jerry Bao commented on SOLR-12495: ---------------------------------- Wanted to add a couple of comments: Would be great if this occurs per-collection. For example, a collection with 42 replicas and 40 nodes should expect to have one replica from that collection on each node, with 2 nodes having 2 replicas. \{"replica": "#MINIMUM", "collection": "#EACH", "node": "#ANY"} Cluster-wide would also go along with this, making sure each node has a similar amount of replicas. \{"replica": "#MINIMUM", "node": "#ANY"} A warning that "<3" which is ceil(42/40) = 2 works, but only after each node has one replica. This rule also allows for 2 replicas on 21 nodes, which is not as good as 1 replica on all nodes, and 2 replicas on 1 node. I think this should be fixed by the ordering of the nodes by preference, but only if the list is updated after each movement. [~noble.paul] FYI > Make it possible to evenly distribute replicas > ---------------------------------------------- > > Key: SOLR-12495 > URL: https://issues.apache.org/jira/browse/SOLR-12495 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) > Components: AutoScaling > Reporter: Noble Paul > Priority: Major > > Support a new function value for {{replica= "#MINIMUM"}} > {{#MINIMUM}} means the minimum computed value for the given configuration > the value of replica will be calculated as {{<= > Math.ceil(number_of_replicas/number_of_valid_nodes) }} > *example 1:* > {code:java} > {"replica" : "#MINIMUM" , "shard" : "#EACH" , "node" : "#ANY"} > {code} > *case 1* : nodes=3, replicationFactor=4 > the value of replica will be calculated as {{Math.ceil(4/3) = 2}} > current state : nodes=3, replicationFactor=2 > this is equivalent to the hard coded rule > {code:java} > {"replica" : "<3" , "shard" : "#EACH" , "node" : "#ANY"} > {code} > *case 2* : > current state : nodes=3, replicationFactor=2 > this is equivalent to the hard coded rule > {code:java} > {"replica" : "<3" , "shard" : "#EACH" , "node" : "#ANY"} > {code} > *example:2* > {code} > {"replica" : "#MINIMUM" , "node" : "#ANY"}{code} > case 1: numShards = 2, replicationFactor=3, nodes = 5 > this is equivalent to the hard coded rule > {code:java} > {"replica" : "<3" , "node" : "#ANY"} > {code} > *example:3* > {code} > {"replica" : "<2" , "shard" : "#EACH" , "port" : "8983"}{code} > case 1: {{replicationFactor=3, nodes with port 8983 = 2}} > this is equivalent to the hard coded rule > {code} > {"replica" : "<3" , "shard" : "#EACH" , "port" : "8983"}{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org