On Thu, Jul 23, 2015 at 2:10 AM, Imesh Gunaratne <[email protected]> wrote:

> ​Hi All,
>
> We implemented a new Carbon membership scheme for Carbon servers for
> automatically discovering the Hazelcast cluster via the Stratos topology.
> This is for automatically discovering Carbon instances in a Carbon cluster
> when running on Private PaaS. In the previous version of the Private PaaS
> we used WKA membership scheme for this and implemented additional logic to
> manage the number of WKA members and their recovery process. In the
> previous model we needed to restart the entire Carbon cluster if all the
> existing WKA members get terminated due to some reason.
>
> The initial implementation of $subject which was done for Carbon 4.4.0 can
> be found here [1].
>
> *How it works*
>
> This new model allows all the members in the cluster to get connected to
> all the other members. More importantly the member list of the Hazelcast
> cluster configuration get updated dynamically when new members join the
> cluster and when existing members leave.
>

Yes. Treating all the members in the cluster as WKA members is a tried and
tested method. This is the way to solve this problem.


>
>
> As shown in the above diagram the Stratos membership scheme fetch the
> topology from the message broker and find the list of member IP addresses.
> Then those IP addresses are configured in Hazelcast Network Configuration
> and let the Clustering Agent to create the Hazelcast instance. This happens
> at the server startup.
>
> Once a new member is created by the PaaS, it executes the same logic and
> get connected to all the existing members available in the given
> cluster(s). Once this happens the existing members get connected back to
> the new member via Hazelcast.
>
> In the axis2.xml we can specify a list of cluster ids from which the
> members should be listed from:
>
> <clustering
> class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent"
>                 enable="true">
>                 ...
>                 <parameter name="membershipScheme">stratos</parameter>
>                 <parameter
> name="clusterIds">cluster-1,cluster-2</parameter>
>                 ...
>     </clustering>
>
> Here we have allowed to specify multiple cluster ids to be able to use
> cartridge grouping functionality in Private PaaS which would allow us to
> model worker/manager separation.
>
> *Work in progress*
>
> Currently in the Carbon Kernel we do not have an extension point for
> plugging in new membership schemes. As a result we had to patch the Carbon
> Kernel Core module to do this initial implementation.
>

>From Hazelcast 3.6 release, they are introducing a new Hazelcast discovery
API. This will allow us to plug different membership schemes easily. Imesh,
Can you create a Jira in the Carbon product 4.5 version?

>
> Now we are in the process of introducing an extension point for plugging
> in custom membership schemes to the Carbon runtime. Once that is
> implemented we could move the above feature to a separate bundle and drop
> it to the dropins folder and use it.
>
> [1] https://github.com/imesh/stratos-membership-scheme
>
> Thanks
>
> --
> *Imesh Gunaratne*
> Senior Technical Lead
> WSO2 Inc: http://wso2.com
> T: +94 11 214 5345 M: +94 77 374 2057
> W: http://imesh.gunaratne.org
> Lean . Enterprise . Middleware
>
>


-- 
Sameera Jayasoma,
Software Architect,

WSO2, Inc. (http://wso2.com)
email: [email protected]
blog: http://blog.sameera.org
twitter: https://twitter.com/sameerajayasoma
flickr: http://www.flickr.com/photos/sameera-jayasoma/collections
Mobile: 0094776364456

Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to