On Mon, Jan 20, 2014 at 12:29 AM, Senaka Fernando <sen...@wso2.com> wrote:

> Hi Kishanthan,
>
> What's CarbonConfigurationContext? In which API is this defined? Is it
> generic/useful to entire carbon kernel? If not, how about
> ClusterConfigurationContext or something relevant only to clustering?
>

We see a usage for the CarbonConfigurationContext (the configuration
context model for carbon), at ClusterMessage level. The cluster message
uses this instance with its execute method. But if we think along this way,
we actually don't need that. Most the requirements for cluster message
execution can be fulfilled using the OSGi service approach. It will be a
more clean approach, if we can remove this dependent part as-well. We will
take this into consideration.


>
>
>
> On Sun, Jan 19, 2014 at 11:32 PM, Selvaratnam Uthaiyashankar <
> shan...@wso2.com> wrote:
>
>>
>>
>>
>> On Sun, Jan 19, 2014 at 11:40 AM, Kishanthan Thangarajah <
>> kishant...@wso2.com> 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
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> S.Uthaiyashankar
>> VP Engineering
>> WSO2 Inc.
>> http://wso2.com/ - "lean . enterprise . middleware"
>>
>> Phone: +94 714897591
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
>
> *[image: http://wso2.com] <http://wso2.com> Senaka Fernando*
> Senior Technical Lead; WSO2 Inc.; http://wso2.com
>
>
>
> * Member; Apache Software Foundation; http://apache.org
> <http://apache.org>E-mail: senaka AT wso2.com <http://wso2.com>**P: +1
> 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*;
>
>
> *M: +94 77 322 1818 <%2B94%2077%20322%201818> Linked-In:
> http://linkedin.com/in/senakafernando
> <http://linkedin.com/in/senakafernando>*
> Lean . Enterprise . Middleware
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*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>*

<<C5 - Clustering.png>>

_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to