According to the proper definition of coordinator, a single cluster may
generally have only one coordinator. So when your "coordinators" fail, how
do others take over those tasks? Rather than having each component
implement this in different ways, I would prefer the kernel to decide who
the coordinator is, and then notify the relevant components.

Azeez


On Tue, Apr 1, 2014 at 2:27 PM, Anjana Fernando <[email protected]> wrote:

> Hi Azeez,
>
> For the tasks functionality, at the moment, we have our own implementation
> on top of Hazelcast, since we require some additional functionality than
> the simple scenario. The idea was I guess, to build that functionality on
> top of this, but the direct implementation for the moment is more straight
> forward. For example, the task implementation currently can have multiple
> coordinators according to different task types, this is because a single
> node can be hosting tasks for many tasks types and another may only contain
> a different task type and so on. So we will see probably in the future, if
> we can migrate to this, by possibly implementing any missing functionality.
>
> Cheers,
> Anjana.
>
>
> On Tue, Apr 1, 2014 at 1:52 PM, Afkham Azeez <[email protected]> wrote:
>
>> We have had this requirement for having a single coordinator per cluster,
>> and I have come up with a simple implementation. I am using a Hazlecast
>> lock for this. The member who acquires this lock becomes the coordinator.
>> In the event of the coordinator crashing, another member will acquire that
>> lock, and will become the new coordinator. When a new member becomes the
>> coordinator, then it may need to do certain things. For example, the tasks
>> component may need to take over execution of tasks. In order to notify such
>> components about this member becoming the coordinator, I have introduced an
>> interface called CoordinatedActivity with a single method called execute.
>> If you wish to be notified when this member becomes the coordinator, you
>> need to register an OSGi service which implements that interface.
>>
>> In addtion, the ClusteringAgent also has a method named isCoordinator and
>> if your code wishes to check whether this member is the coordinator before
>> executing certain things, you can call that method.
>>
>> The code is available in the feature branch
>> https://github.com/wso2/carbon-kernel/tree/cluster-coordinator-feature
>>
>> --
>> *Afkham Azeez*
>> Director of Architecture; WSO2, Inc.; http://wso2.com
>> Member; Apache Software Foundation; http://www.apache.org/
>> * <http://www.apache.org/>*
>> *email: **[email protected]* <[email protected]>
>> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: *
>> *http://blog.afkham.org* <http://blog.afkham.org>
>> *twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>> * linked-in: **http://lk.linkedin.com/in/afkhamazeez
>> <http://lk.linkedin.com/in/afkhamazeez>*
>>
>> *Lean . Enterprise . Middleware*
>>
>
>
>
> --
> *Anjana Fernando*
> Technical Lead
>  WSO2 Inc. | http://wso2.com
> lean . enterprise . middleware
>



-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>*
*email: **[email protected]* <[email protected]>
* cell: +94 77 3320919 blog: **http://blog.afkham.org*<http://blog.afkham.org>
*twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
* linked-in: **http://lk.linkedin.com/in/afkhamazeez
<http://lk.linkedin.com/in/afkhamazeez>*

*Lean . Enterprise . Middleware*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to