axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chamikara Jayalath" <chamikar...@gmail.com>
Subject Re: [Axis2] An approach for clustering Axis2
Date Fri, 25 Aug 2006 10:44:50 GMT
Hi Deepal,

Please see below.

On 8/24/06, Deepal Jayasinghe <deepal@opensource.lk> wrote:
>
> Hi Chamikara;
>
> Chamikara Jayalath wrote:
>
> > Hi All,
> >
> > Here is a summary of the ideas we discussed in the hackathon.
> >
> ---------------------------------------------------------------------------------------------
> > 1. It is fine to go with the abstraction approach. Axis2 will come
> > with the ClusterManager interface and there will be specific points in
> > code where this interface will be invoked.
>
> What are those specific points ?    .....



This is something we have to decide. From which points of Axis2 the
ClusterManager methods will be invoked. For example:

* touchProperty() method may have to be called from the getProperty and
setProperty methods of the AbstractContext.

* updateState() may get called from the TransportSenders and
MesageReceivers.


>
> > 2. Replicating MessageContexts and OperationContexts would be too
> > costly. So we will only be replication ConfigurationContexts,
> > ServiceGroupContexts and ServiceContexts.
>
> +1 , actually you dont need to replicate o.c and m.c , because if
> something goes wrong while we are processing the message then we are not
> going to handle that case . So what we only require is to store s.g.c ,
> and of course we need to replicate them only if service is deployed in
> application or soapsession scope.



Ok. Thanks for the info.


>
> > 3. Weather all the cloned contexts will be available in all the nodes
> > or not will be up to each ClusterManager implementation. Some
> > implementations may choose to group nodes as a resource optimization
> > mechanism.
> >
> > 4. The state of the above three contexts are basically defined by
> > their property bags. So we should replicate the state of the property
> > bag correctly using the ClusterManager.
>
> yes
>
> >
> > 5. There will be specific points in the Axis2 message execution chain
> > where a specific node will be broadcasting its state. One point may be
> > the MessageReceiver. Another may be the TransportSender.
>
> If you try to broadcast the state at any of those , then if some one is
> writing new message receiver or transport sender then they need to do
> those as well.
> What I think is , do those inside AxisEngine , broadcast
>   - immediately after it invoke m.r  (when it recieve a message)
> - immediately after it call t.s (inside send method)



How about AbstractMessageReceiver and the AbstractTransportSender ? If we
add ClusterManager invocations there, they will be reflected in all
TransportSenders and MessageReceivers right ?

Thanks for the valuable ideas :-)


Chamikara

Mime
View raw message