[ https://issues.apache.org/jira/browse/SOLR-11985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Noble Paul updated SOLR-11985: ------------------------------ Description: Today we can only specify an absolute number in the 'replica' attribute in the policy rules. It'd be useful to write a percentage value to make certain use-cases easier. For example: {code:java} // Keep a third of the the replicas of each shard in east region {"replica" : "<34%", "shard" : "#EACH", "sysprop:region": "east"} // Keep two thirds of the the replicas of each shard in west region {"replica" : "<67%", "shard" : "#EACH", "sysprop:region": "west"} {code} Today the above must be represented by different rules for each collection if they have different replication factors. Also if the replication factor changes later, the absolute value has to be changed in tandem. So expressing a percentage removes both of these restrictions. This feature means that the value of the attribute {{"replica"}} is only available just in time. We call such values {{"computed values"}} . The computed value for this attribute depends on other attributes as well. Take the following 2 rules {code:java} //example 1 {"replica" : "<34%", "shard" : "#EACH", "sysprop:region": "east"} //example 2 {"replica" : "<34%", "sysprop:region": "east"} {code} assume we have collection {{"A"}} with 2 shards and {{replicationFactor=3}} *example 1* would mean that the value of replica is computed as {{3 * 34 / 100 = 1.02}} Which means *_for each shard_* keep less than 1.02 replica in east availability zone *example 2* would mean that the value of replica is computed as {{3 * 2 * 34 / 100 = 2.04}} which means _*for each collection*_ keep less than 2.04 replicas on east availability zone was: Today we can only specify an absolute number in the 'replica' attribute in the policy rules. It'd be useful to write a percentage value to make certain use-cases easier. For example: {code} // Keep a third of the the replicas of each shard in east region {"replica" : "<34%", "shard" : "#EACH", "sysprop:region": "east"} // Keep two thirds of the the replicas of each shard in west region {"replica" : "<67%", "shard" : "#EACH", "sysprop:region": "west"} {code} Today the above must be represented by different rules for each collection if they have different replication factors. Also if the replication factor changes later, the absolute value has to be changed in tandem. So expressing a percentage removes both of these restrictions. > Allow percentage in replica attribute in policy > ----------------------------------------------- > > Key: SOLR-11985 > URL: https://issues.apache.org/jira/browse/SOLR-11985 > Project: Solr > Issue Type: Sub-task > Security Level: Public(Default Security Level. Issues are Public) > Components: AutoScaling, SolrCloud > Reporter: Shalin Shekhar Mangar > Assignee: Noble Paul > Priority: Major > Fix For: 7.4, master (8.0) > > > Today we can only specify an absolute number in the 'replica' attribute in > the policy rules. It'd be useful to write a percentage value to make certain > use-cases easier. For example: > {code:java} > // Keep a third of the the replicas of each shard in east region > {"replica" : "<34%", "shard" : "#EACH", "sysprop:region": "east"} > // Keep two thirds of the the replicas of each shard in west region > {"replica" : "<67%", "shard" : "#EACH", "sysprop:region": "west"} > {code} > Today the above must be represented by different rules for each collection if > they have different replication factors. Also if the replication factor > changes later, the absolute value has to be changed in tandem. So expressing > a percentage removes both of these restrictions. > This feature means that the value of the attribute {{"replica"}} is only > available just in time. We call such values {{"computed values"}} . The > computed value for this attribute depends on other attributes as well. > Take the following 2 rules > {code:java} > //example 1 > {"replica" : "<34%", "shard" : "#EACH", "sysprop:region": "east"} > //example 2 > {"replica" : "<34%", "sysprop:region": "east"} > {code} > assume we have collection {{"A"}} with 2 shards and {{replicationFactor=3}} > *example 1* would mean that the value of replica is computed as > {{3 * 34 / 100 = 1.02}} > Which means *_for each shard_* keep less than 1.02 replica in east > availability zone > > *example 2* would mean that the value of replica is computed as > {{3 * 2 * 34 / 100 = 2.04}} > > which means _*for each collection*_ keep less than 2.04 replicas on east > availability zone -- 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