Hi Isuru/Imesh,

This particular processor chain implemented in order to calculate the
status of the application/group/cluster. When an status change occurred in
member, cluster processor chain will get executed to calculate the current
status of the cluster in which that member is being part of. When a member
status changed to a particular status say Activated which could result the
cluster status change to Activated only. Hence, if we know cluster status
changes to particular status as part of member status change, then can pass
that event details to Processor chain. So that only that particular
processor will get executed rather than other processors also executed. In
that case, it will improve the performance. If we are not sure about the
status of the cluster could be decided by a member status change like
Terminated, then cluster processor chain can be invoked by passing empty
string. So that by executing all the processors, the cluster status can be
decided by the very first processor which calculated the status change.

Hope this will help you to understand the logic. Please let me know, if
anything is not clear..

Thanks,
Reka

On Wed, Nov 18, 2015 at 11:13 PM, Imesh Gunaratne <im...@apache.org> wrote:

> I'm sorry Isuru I'm not so sure how this logic works, @Reka: Do you have
> any thoughts?
>
> Thanks
>
> On Wed, Nov 18, 2015 at 6:52 PM, Isuru Haththotuwa <isu...@apache.org>
> wrote:
>
>> Hi,
>>
>> In ClusterMonitor [1] and AutoscalerTopologyEventReceiver [2] classes,
>> there are two occasions where we are sending a message through the
>> ClusterStatusProcessorChain with type set to an empty String [3, 4]. AFAIK
>> the processor chain will determine which processor to use based on this
>> type, and since its empty, the message will not update the ClusterStatus.
>> Any particular reason to do this?
>>
>> [1]. org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor
>> [2].
>> org.apache.stratos.autoscaler.event.receiver.topology.AutoscalerTopologyEventReceiver
>> [3].
>> ServiceReferenceHolder.getInstance().getClusterStatusProcessorChain().
>>                        * process("", clusterId, clusterInstanceId);*
>>
>> [4].
>> ServiceReferenceHolder.getInstance().getClusterStatusProcessorChain().
>>                       *  process("", cluster.getClusterId(),
>> clusterInstance.getInstanceId());*
>>
>>
>>
>> --
>> Thanks and Regards,
>>
>> Isuru H.
>> +94 716 358 048* <http://wso2.com/>*
>>
>>
>>
>
>
> --
> Imesh Gunaratne
>
> Senior Technical Lead, WSO2
> Committer & PMC Member, Apache Stratos
>



-- 
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Reply via email to