Thanks Nirmal and Udara.
Just found "minimum-autoscaler-rule.drl" at tests of autoscaler component.
It seems this rule([1]) is run against a partition. IMO we should run it
against a cluster since rules can be run in loops efficiently as follows,
rule "Minimum Rule"
dialect "mvel"
when
$deploymentPolicy : $cluster.getDeploymentPolicy()
$partitionGroup : PartitionGroup () from
$deploymentPolicy.getPartitionGroups()
$partition : Partition () from $partitionGroup.getPartitions()
eval($clusterContext.getMemberCount($partition.getId()) <
$partition.getPartitionMembersMin())
then
int memberCountToBeIncreased = 1 ;
if(AutoscalerRuleEvaluator.delegateSpawn($ctxt.getPartition()
,$clusterId)){
$ctxt.incrementCurrentMemberCount(memberCountToBeIncreased);
}
end
Thanks.
[1]
rule "Minimum Rule"
dialect "mvel"
when
$ctxt : PartitionContext ()
eval($ctxt.getCurrentMemberCount() < $ctxt.getMinimumMemberCount())
then
int memberCountToBeIncreased = 1 ;
if(AutoscalerRuleEvaluator.delegateSpawn($ctxt.getPartition()
,$clusterId)){
$ctxt.incrementCurrentMemberCount(memberCountToBeIncreased);
}
end
On Tue, Dec 3, 2013 at 7:29 AM, Udara Liyanage <[email protected]> wrote:
> The min rule file us updated as I can remember. It is not the one you have
> specified in the mail. Not sure updated rule file is added to the product
> or not.
>
> Touched, not typed. Erroneous words are a feature, not a typo.
> On Dec 2, 2013 11:42 PM, "Lahiru Sandaruwan" <[email protected]> wrote:
>
>>
>>
>>
>> On Mon, Dec 2, 2013 at 11:35 PM, Lahiru Sandaruwan <[email protected]>wrote:
>>
>>> Nirmal,
>>>
>>> In minimum rule, it runs against all the clusters[1]. But in
>>> ClusterMonitor thread is run per cluster which is correct.
>>>
>>> Didn't you update "Minimum Rule" in the rules file, or is it a separate
>>> rules file that you have used?
>>>
>>>
>> I meant whether you have used a different Rules file at deployment time
>> of the Stratos, which is different to default one in the
>> products/autoscaler at [1].
>>
>> Thanks.
>>
>>
>>
>>>
>>> [1]
>>>
>>> rule "Minimum Rule"
>>> dialect "mvel"
>>> when
>>> $service : Service ()
>>> $cluster : Cluster () from $service.getClusters()
>>> $deploymentPolicy : DeploymentPolicy(id ==
>>> $cluster.getDeploymentPolicyName() ) from $manager.getDeploymentPolicyList()
>>> $partitionGroup : PartitionGroup () from
>>> $deploymentPolicy.getPartitionGroups()
>>> $partition : Partition () from $partitionGroup.getPartitions()
>>> $clusterContext : ClusterContext() from
>>> $context.getClusterContext($cluster.getClusterId())
>>> eval($clusterContext.getMemberCount($partition.getId()) <
>>> $partition.getPartitionMembersMin())
>>>
>>>
>>> then
>>> int memberCountToBeIncreased =
>>> $partition.getPartitionMembersMin() -
>>> $clusterContext.getMemberCount($partition.getId());
>>> if($evaluator.delegateSpawn($partition,$cluster.getClusterId(),
>>> memberCountToBeIncreased)){
>>> $clusterContext.increaseMemberCountInPartitionBy($partition.getId(),
>>> memberCountToBeIncreased);
>>> }
>>> end
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Software Engineer,
>>> Platform Technologies,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: [email protected] cell: (+94) 773 325 954
>>> blog: http://lahiruwrites.blogspot.com/
>>> twitter: http://twitter.com/lahirus
>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>
>>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Software Engineer,
>> Platform Technologies,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: [email protected] cell: (+94) 773 325 954
>> blog: http://lahiruwrites.blogspot.com/
>> twitter: http://twitter.com/lahirus
>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>
>>
--
--
Lahiru Sandaruwan
Software Engineer,
Platform Technologies,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware
email: [email protected] cell: (+94) 773 325 954
blog: http://lahiruwrites.blogspot.com/
twitter: http://twitter.com/lahirus
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146