Rajith,

> > > Yep I am in agreement. The reason I asked about clustering is bcos of
> > > the recent thread on session mgt and the need to have the session-mediator
> > > state replicated across the cluster (I hope I didn't misunderstand the
> > > requirments here). I was wondering if this sort of thing is trivial to
> > > implement. Like can we replicate any mediator state if we choose to in a
> > > trivial way?
> > >
> >
> > Yes it is, I think the session-mediator has to take the replication in
> > to account (i.e. another state full mediator for synapse :)). If you are
> > using the ConfigurationContext of axis2 (basically the whole context
> > hierarchy) to store the data (for example, the session data table mapped
> > using a session id) ** you just need to call ConfigurationContext.flush();
> > to replicate any data which has been changed after the last replication.
> > Additionally if you need to just replicate some of the properties of the
> > cfgCtx then you can call the the flush method with the property names (see
> > the clustering API for the exact signature of the method, I don't remember
> > that exactly).
> >
>
> Ruwan, once again thank you for the detailed answer. I really appreciate
> it. The reason behind the question "can we replicate any mediator state if
> we choose to in a trivial way?" was to figure out if the current axis2
> clustering support is sufficient.
>
> However we have to be careful when replicating mediator state especially
> when there are concurrent modifications on different nodes. This can cause
> undesired affects and it is a limitation in our current clustering
> implementation. So even for the session map, if two nodes modify the map
> concurrently we may have issues. This doc explains the limitations
> http://ws.apache.org/axis2/1_3/clustering-guide.html.
> So perhaps it's worthwhile to highlight these issues to synapse users who
> want to tap into the clustering support.
>

Yes, we know this limitation is there. Even we have a JIRA for the Throttle
mediator [1]. This is because there is no distributed locking mechanism in
axis2-clustering implementation. But again we have not came across any
requirement to support that level of replication to happen from users and
most of them are fine with this error.

[1] - https://issues.apache.org/jira/browse/SYNAPSE-180

Thanks,
Ruwan

-- 
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"

Reply via email to