On Sun, Jan 19, 2014 at 11:40 AM, Kishanthan Thangarajah <
[email protected]> wrote:

> Clustering SPI provides the ability to plug-in different clustering
> implementation to carbon. By default, carbon will ship hazel-cast based
> clustering impl. There will be a separate file (cluster.xml) for cluster
> configuration.
>
> The SPI will contain the following main interfaces.
>
> *ClusteringAgent* - is responsible for initializing and managing this
> node in the cluster.
> *MembershipScheme* - a representation of a membership scheme such as
> "multicast" or "well-known address (wka) used in the cluster.
>
> A high-level view can be as follows
>
> [image: Inline image 1]
>
> When the cluster agent is successfully initialized, it will also register
> the Cluster Service (being discussed at "[C5] Clustering API"). The
> Cluster Service will use the clustering agent underneath at implementation
> level for its required operations. Based on previous experiences, we have
> defined the following methods for clustering agent and membership scheme
> for now. Based on the final outcome of this discussion, they may get
> changed.
>
> *ClusteringAgent*
>
>     /**
>      * Initialize the agent which will initialize this node, and join the
> cluster
>      */
>     void *init*() throws ClusteringFault;
>
>     /**
>      * Shutdown the agent which will remove this node from cluster
>      */
>     void *shutdown*() throws ClusteringFault;
>
>     /**
>      * Set carbon configuration context to this agent to be used in the
> clustering impl
>      */
>     void *setConfigurationContext*(CarbonConfigurationContext
> configurationContext);
>
>     /**
>      * Get the list of static members
>      */
>     List<ClusterMember> *getStaticMembers*();
>



Don't we need a method to get all the members (including dynamic members)?



>
>     /**
>      * Get the number of members alive.
>      */
>     int *getAliveMemberCount*();
>
>     /**
>      * Send a message to all members in the cluster
>      */
>     List<ClusteringCommand> *sendMessage*(ClusterMessage msg, boolean
> isSync)
>             throws ClusteringFault;
>


what is "isSync"? Synchronous communication? or are we synchronizing
something?

Also, what are the contents of ClusteringCommand?



>
>     /**
>      * Send a message to a set of specific members in the cluster
>      */
>     List<ClusteringCommand> *sendMessage*(ClusterMessage msg,
> List<ClusterMember> members, boolean isSync)
>             throws ClusteringFault;
>
>
> *MembershipScheme*
>
>     void *init*() throws ClusteringFault;
>
>     void *joinGroup*() throws ClusteringFault;
>
>
> Thoughts?
>
> Thanks,
> Kishanthan.
> --
> *Kishanthan Thangarajah*
> Senior Software Engineer,
> Platform Technologies Team,
> WSO2, Inc.
> lean.enterprise.middleware
>
> Mobile - +94773426635
> Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>*
> Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
S.Uthaiyashankar
VP Engineering
WSO2 Inc.
http://wso2.com/ - "lean . enterprise . middleware"

Phone: +94 714897591

<<C5 - Clustering.png>>

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

Reply via email to