[ 
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

Reply via email to