Hi, I think, we only need two values min/max. Min is need to get dependency ratio (and HA) and max is need for one-after-other deployment patten or absolute max. IMO, if we can set all these values in deployment policy (with respect to partitions) would be very clear.
Only reason I can see, put CartridgeMin in application is to calculate dependency ratio. Can we calculate it from attached deployment policy? On Tue, Mar 17, 2015 at 1:50 PM, Shaheedur Haque (shahhaqu) < shahh...@cisco.com> wrote: > LOL. We are going around in circles…let’s start over. > > > > In 4.1.0, there are two pairs of limits on instance numbers, one called > partitionMin/Max (specified in the Deployment Policy) and one called > cartridgeMin/Max alongside the subscription info (specified in the > Application). > > > > My question was what is the point of cartridgeMax? You gave a very > confusing example in reply with what look like several crucial typos, and > even if I guess at what was intended, I still don’t see a strong reason to > have cartridgeMax. Specifically, in your example, if I wanted to limit the > application to 5 instances of PHP, why would I not simply set the > partitionMax to 2,3 or 3,2 in the two partitions? > > > > Similarly, I have yet to see any convincing response as to why > cartridgeMin is really required. > > > > The subtle shift in behavior being claimed in these cases seems confusing > at best, and simply broken at worst. I claim broken because there are no > clear rules as to how all 4 values relate, and no clear use-case to have > all 4. In short, I have no idea how or why I should set them. > > > > Please clarify or remove. > > > > Thanks, Shaheed > > > > > > *From:* Lahiru Sandaruwan [mailto:lahi...@wso2.com] > *Sent:* Tuesday, March 17, 2015 3:43 AM > > *To:* dev > *Subject:* Re: [Discuss] Cartridge definition doesn't need > "maxInstanceLimit" property anymore > > > > Hi Shaheed, > > > > We can define the maximum number of instances that can be spawned per > partition in deployment policy. You can find a simple sample which is > written for next developer preview at [1]. This sample is an end to end > sample with single cartridge application and Mock IaaS. See the step 5 for > *partitionMax > *usage. > > > > Thanks. > > > > [1] > https://cwiki.apache.org/confluence/display/STRATOS/4.1.0-Beta+Install+Stratos+with+a+Mock+IaaS > > > > On Mon, Mar 16, 2015 at 5:24 PM, Shaheedur Haque (shahhaqu) < > shahh...@cisco.com> wrote: > > Hi Lahiru, > > > > What do you mean by partition max? Where is it specified? > > > > Thanks, Shaheed > > > > *From:* Lahiru Sandaruwan [mailto:lahi...@wso2.com] > *Sent:* Saturday, March 14, 2015 2:31 AM > > > *To:* dev > *Subject:* Re: [Discuss] Cartridge definition doesn't need > "maxInstanceLimit" property anymore > > > > Hi Shaheedur, > > > > This is the same model we had from 4.0.0 and we did not change the concept > in this release. Explanation as below, > > > > There can be several partitions that a particular cartridge(service > cluster) can span over. > > > > E.g. > > > > Say PHP cartridge have 3 partitions(P1 and P2). P1 has 3 as partition max > and P1 has 6 as partition max. > > PHP has 2 as Cartridge min and 5 as Cartridge max. > > > > *With one-after-another algorithm between partitions,* > > > > *Min instances creation,* > > Both the minimum instances will be created in P1. > > > > *Scaling up,* > > First scaling up member will be created in P1 and the next members will be > created in P2. It can only create 3 members in P1 and 2 members in P2 as it > will reach it's max of 5 members. That's where the cartridge max is used. > > > > > * With round-robin algorithm between partitions,* > > > > *Min instances creation,* > > One of the minimum instances will be created in P1 and the other in P2. > > > > *Scaling up,* > > Scaling up members will be created in round-robin manner in P1 and P2. > > > > On Fri, Mar 13, 2015 at 9:31 PM, Shaheedur Haque (shahhaqu) < > shahh...@cisco.com> wrote: > > After discussing a bit with Imesh, we identified 3 points that need > clarifying: > > > > · If there is to be a cartridgeMin attribute, it should at least > be optional and take its default value from the deployment policy minimum > value. > > Do you mean the minimum value per partition? I cannot see such value. > There is only maximum in partitions of deployment policy. > > · If there is to be a cartridgeMin attribute, its behaviour needs > to be specified with respect to the deployment min and max. For example, > what happens if the cartridgeMin is greater than the deployment max? > > > > This is a good question. Ideally, with current implementation, it will > not create instances beyond partition Max. > > · We need to find out what, if anything, the cartridgeMax is for. > > > > IMO partition max are for limiting the instances in IaaS, for particular > region, zone or so. But cartridge need it's own limit when it scales up, > where reusable partitions may have less or more space. Therefore we need > both. > > > > *Stratos will create instances until the lowest of those max > values(Cartridge max and partition max).* > > > > Thanks. > > > > > > > > *From:* Shaheedur Haque (shahhaqu) > *Sent:* 13 March 2015 08:22 > *To:* dev@stratos.apache.org > *Subject:* RE: [Discuss] Cartridge definition doesn't need > "maxInstanceLimit" property anymore > > > > Hi Reka, > > > > First, I strongly suggest we not use internal terms like “cluster”, since > they are not part of the user visible model, to explain user visible > behaviour. For example, my understanding of a cluster is almost certainly > not as good as you think it is J. Nevertheless… > > > > I think I understand: you are saying that when a group scales up, you will > initially spin up cartridgeMin instances, correct? If this is not correct, > please clarify. If it is correct, then: > > > > · I would have thought that the correct behaviour was to enforce > the minimum value specified in the deployment policy. > > · Even if there is a theoretical use case where a new group should > start with a different values that the one in the deployment policy, you > would need to clearly explain how cartridgeMin relates to both deployment > min **and** max when the values clash. I say we should rather keep it > simple and use the deployment policy values. > > · What is cartridgeMax used for? > > > > Thanks, Shaheed > > > > *From:* Reka Thirunavukkarasu [mailto:r...@wso2.com <r...@wso2.com>] > *Sent:* 13 March 2015 02:54 > *To:* dev > *Subject:* Re: [Discuss] Cartridge definition doesn't need > "maxInstanceLimit" property anymore > > > > Hi Shaheedur, > > Sorry for the confusion..Let me explain what cartridgeMin is and the > purpose of having it in the application. As you already aware, we have > the group instances/cluster instances concept with 4.1.0 in order to > support group scaling. For the cluster level, we will need a minimum count > for the members in order to maintain this minimum count all the time. Since > we have cluster instance concept, we will need a minimum members per > cluster instance level. So that whenever a new cluster instance is getting > created, we can satisfy the cluster instance by creating the cartridgeMin > number of members and can send the clusterInstanceActivated event. That's > why > cartridgeMin got introduced in the application. "cartridgeMin" means the > minimum number of members per cluster instance. > > When a cluster instance is getting created, let's say you have two as the > cartridgeMin. In that case in order to create those two members, we will > need to find out the partition. For that, we will get the associated policy > and find the suitable partition to spin those members one by one. If one of > the partition is full, our algorithm is capable of choosing the next > available partition. > > Please let me know, if it is unclear still.. > > Thanks, > > Reka > > > > On Thu, Mar 12, 2015 at 11:31 AM, Shaheedur Haque (shahhaqu) < > shahh...@cisco.com> wrote: > > I’m now thoroughly confused as to what is going and staying. I **think** > the latest part of this thread says we need to keep cartridgeMin and > cartridgeMax. Why do we need cartridgeMin and cartridgeMax at this point in > the system? > > > > *From:* Reka Thirunavukkarasu [mailto:r...@wso2.com] > *Sent:* 12 March 2015 17:09 > *To:* dev > *Subject:* Re: [Discuss] Cartridge definition doesn't need > "maxInstanceLimit" property anymore > > > > Hi Raj, > > > > On Thu, Mar 12, 2015 at 10:01 AM, Rajkumar Rajaratnam <rajkum...@wso2.com> > wrote: > > > > > > On Thu, Mar 12, 2015 at 10:24 PM, Reka Thirunavukkarasu <r...@wso2.com> > wrote: > > Hi Lahiru/Raj, > > I think that we have introduced this *cartridgeMin/cartridgeMax *when > introducing the deployment policy for cartridge and groups as global > deployment policy. Since we have the same concept now, i would like to > review the implementation and confirm whether it is required or not. Can > you please hold until that? I will quickly confirm on this.. > > > > Hi Reka, I am not sure whether I understood you wrong. Yes we need > cartridgeMin and cartridgeMax, which are defined in application json. But > we don't need *maxInstanceLimit* property, which used to define in > cartridge json in 4.0.0. I guess we have already removed references to this > property from code base, but not from sample artifacts. > > > > Thanks for the details.. We no longer using *maxInstanceLimit. *+1 to > remove it..I was bit confused when i read the mail body as i thought that > you are going to remove cartidgeMin/cartridgeMax. Now it is clear.. > > Thanks, > > Reka > > > > > > Thanks, > > Reka > > > > On Thu, Mar 12, 2015 at 9:40 AM, Lahiru Sandaruwan <lahi...@wso2.com> > wrote: > > Noticed today. It was misleading as we have this left in samples. I will > clean this up. > > > > Thanks. > > > > On Thu, Mar 12, 2015 at 10:04 PM, Rajkumar Rajaratnam <rajkum...@wso2.com> > wrote: > > Hi Devs, > > We are defining cartridge min max count in application definition. > > { > "applicationId": "single-cartridge-app", > "alias": "single-cartridge-app", > "multiTenant": false, > "components": { > "cartridges": [ > { > "type": "php", > > *"cartridgeMin": 1, "cartridgeMax": 10,* > "subscribableInfo": { > "alias": "my-php", > "autoscalingPolicy": "autoscaling-policy-1", > "deploymentPolicy": "deployment-policy-1", > "artifactRepository": { > "privateRepo": false, > "repoUrl": " > https://github.com/imesh/stratos-php-applications.git", > "repoUsername": "", > "repoPassword": "" > } > } > } > ] > } > } > > In 4.0.0, we used to define these in cartridge definition, in IaaS > provider section. We have now removed it from cartridge bean classes. > However I can see that samples still have this attribute. I will remove it. > > Thanks. > > > -- > > Rajkumar Rajaratnam > > Committer & PMC Member, Apache Stratos > > Software Engineer, WSO2 > > Mobile : +94777568639 > > Blog : rajkumarr.com > > > > > > -- > > -- > Lahiru Sandaruwan > > Committer and PMC member, Apache Stratos, > Senior Software Engineer, > WSO2 Inc., http://wso2.com > > lean.enterprise.middleware > > phone: +94773325954 > email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/ > linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 > > > > > > -- > > Reka Thirunavukkarasu > Senior Software Engineer, > WSO2, Inc.:http://wso2.com, > > Mobile: +94776442007 > > > > > > > -- > > Rajkumar Rajaratnam > > Committer & PMC Member, Apache Stratos > > Software Engineer, WSO2 > > Mobile : +94777568639 > > Blog : rajkumarr.com > > > > > -- > > Reka Thirunavukkarasu > Senior Software Engineer, > WSO2, Inc.:http://wso2.com, > > Mobile: +94776442007 > > > > > > > -- > > Reka Thirunavukkarasu > Senior Software Engineer, > WSO2, Inc.:http://wso2.com, > > Mobile: +94776442007 > > > > > > > > -- > > -- > Lahiru Sandaruwan > > Committer and PMC member, Apache Stratos, > Senior Software Engineer, > WSO2 Inc., http://wso2.com > > lean.enterprise.middleware > > phone: +94773325954 > email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/ > linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 > > > > > > > > -- > > -- > Lahiru Sandaruwan > > Committer and PMC member, Apache Stratos, > Senior Software Engineer, > WSO2 Inc., http://wso2.com > > lean.enterprise.middleware > > phone: +94773325954 > email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/ > linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 > > > -- Lakmal Warusawithana Vice President, Apache Stratos Director - Cloud Architecture; WSO2 Inc. Mobile : +94714289692 Blog : http://lakmalsview.blogspot.com/