Paulo Lopes wrote:
> 
> How do you plan to design the endpoint list synchronization?
> 
> Lets say one OEJB node is started and it has no idea on the
> environment, it broadcasts a multicast message announcing it want to
> join a certain server group, the other online nodes just pick its ip
> address and some data from that announcement and they are aware of the
> new node.

Yep...code already done in gcache...I will be reusing that.

> 
> Now it is needed to send back to that node the current list of
> endpoints. Who will send it? 

The multicast is for servers to find each other.  The endpoint list is
placed in the ServerMetaData and sent to the client proxy, so the client
knows who to talk to via the list.  It picks one randomly or round robin
style.  If there is a dicsonnect, the client moves to the next server.
The server's stateful session beans are cached.

> A simple solution is to make it a Master
> Slave architecture and a node is designated a Master and the list is
> maintained by it, however if the master is down (crash or maintenance)
> the new node will never receive the list, so the master needs to be
> elected by the remaining online nodes.
> 

Master/Slave or full replication on the server side will be irrelevant
as they both should work.

> Also it is required to exist some kind of leave group message,
> otherwise dead nodes or undeployed nodes will be kept on that list.
> 

Not really, the beauty of multicast is the servers give a heartbeat.  If
a server has not been heard from within a certain time period, they are
removed from the endpoint list.

> Do you have any kind of protocol + API to do this? or am I just making
> things too complex?
> 

Yep, multicast for discovery and TCPIP for session communication for
replication.  Have a look at gcache in the Geronimo sandbox.


Thanks,

Jeff



> Cheers,
> Paulo
> 
> On 11/14/06, Jeff Genender <[EMAIL PROTECTED]> wrote:
>> Hi Guys,
>>
>> I need to get OpenEJB3 ready for some clustering.  Here is a plan...
>>
>> I am going to add a multicast agent to openejb so that the containers
>> can "find each other".  The containers will create a list of endpoints
>> (other servers) and stuff the list in the ServerMetaData as a list of
>> URLs.  That list will go to the client for use in the proxy.  Currently
>> OEJB2 uses round robin, but I would like to port it up to OEJB3 with a
>> plugable strategy, so we can use "random" for EJB connectivity to
>> provide for load balancing, as well as round robin.
>>
>> I would like to know about preferences for insertion points for the
>> multicast agent, deployment configuration (to turn it on and use it),
>> etc.
>>
>> All comments are welcome.
>>
>> Thanks,
>>
>> Jeff
>>
> 
> 

Reply via email to