axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sanjaya Karunasena <sanja...@wso2.com>
Subject Re: [Axis2] Adding ClusterManager code the the codebase
Date Wed, 07 Feb 2007 09:50:28 GMT
Hi Chamikara,

Please see my comments below.

Regards,
Sanjaya

On Wednesday 07 February 2007 10:32, Chamikara Jayalath wrote:
> Hi Sanjaya, Rajith, All,
>
> Having a dedicated getClusterManager() method in the AxisConfigurator kind
> of implies that the ClusterManager setting will be a special part in the
> axis2.xml (guys, please correct me if I'm wrong).
> So I think it's better to hv it in the current way.
>
> There is another thing that hit my mind. What if a certain ClusterManager
> implementation needs to do total ordering of event updates. Or what if it
> decides to replicate the data as and when the events happen. In such a
> scenario calling a single 'updateState' method at the end of the execution
> will not be sufficient. If we need to plan for this, we may be need to go
> for something like the ContextListner approach that was sugested by
> Sanjaya.
>

This is the point I have discussed in my previous mail to the group. The 
decision should be where to invest. Always there is a cost in terms of 
performance, complexity, extensibility, scalability, etc. Single updateState 
works fine in a small scale setup and very well could be the one to use in 
most of the deployments. But in a large cluster when there are lot of 
conflicts locking techniques not going to scale.

In my opinion, having the ability to have different configurations based on 
the application need is very important. We cannot have a single solution 
which can cater for all the scenarios while providing high values for all the 
QoS attributes.

> Performance wise we can reduce this to a 'null' check in property set,get
> methods. I don't think this will be a much issue. Guys comments ?
>

Null check should get converted to a single instruction in the CPU compare to 
a method call which requires saving the state of the CPU registers and 
restoring them. According to the Java documentation, Java compiler optimizes 
the property set and get methods to direct variable access so that they are 
not expensive as method calls.

> Chamikara
>
> On 2/7/07, Sanjaya Karunasena <sanjayak@wso2.com> wrote:
> > Hi Chamikara,
> >
> > I think it should be a configuration  parameter which says whether
> > clustering
> > is enabled or disabled, defult to disabled.
> >
> > Sanjaya
> >
> > On Tuesday 06 February 2007 20:46, Chamikara Jayalath wrote:
> > > Hi Bill, Dims,
> > >
> > > The ClusterManager impl will be initiated with the ConfigContext. This
> >
> > will
> >
> > > be called in places like Context Creation and removal and may be
> >
> > property
> >
> > > updates (hvnt fully decided yet). When Clustering is not present the
> >
> > cost
> >
> > > should be reduced to a null check.
> > >
> > > Chamikara
> > >
> > > On 2/6/07, Davanum Srinivas <davanum@gmail.com> wrote:
> > > > Bill,
> > > >
> > > > from what i understand, it's in a separate maven module. Not in
> > > > kernel. So you can ignore it :)
> > > >
> > > > -- dims
> > > >
> > > > On 2/6/07, Bill Nagy <nagy@watson.ibm.com> wrote:
> > > > > What is the cost of this going to be for someone who doesn't want
> > > > > clustering/this particular approach to clustering?  I can't infer
> >
> > much
> >
> > > > > from the interface -- exactly which respective events are you
> >
> > referring
> >
> > > > > to?
> > > > >
> > > > > -Bill
> > > > >
> > > > > On Thu, 2007-02-01 at 23:16 +0530, Chamikara Jayalath wrote:
> > > > > > At initiation Axis2 will load a ClusterManager implementation
> >
> > object
> >
> > > > > > (if configured) and will call the methods of it whenever
> >
> > respective
> >
> > > > > > events occur.
> > > > > >
> > > > > > Chamikara
> > > > > >
> > > > > >
> > > > > > [1] ClusterManager interface
> > > > > >
> > > > > > public abstract class ClusterManager {
> > > > > >
> > > > > >     public abstract void init (ConfigurationContext context);
> > > > > >     public abstract void addContext (AbstractContext context);
> > > > > >     public abstract void removeContext (AbstractContext context);
> > > > > >     public abstract void addProperty (AbstractContext context,
> >
> > String
> >
> > > > > > propertyName, Object  propertyValue);
> > > > > >     public abstract void removeProperty (AbstractContext context,
> > > > > > String propertyName);
> > > > > >     public abstract void touchProperty (AbstractContext context,
> > > > > > String propertyName);
> > > > > >     public abstract void commit ();
> > > > > >
> > > > > > }
> >
> > ---------------------------------------------------------------------
> >
> > > > > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> > > >
> > > > --
> > > > Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web Services
> > > > Developers
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
> > --
> > Senior Software Architect
> > WSO2 Inc.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org

-- 
Senior Software Architect
WSO2 Inc.

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message