[jboss-dev-forums] [Design of JBossCache] - Re: Buddy state transfer
bstansberry@jboss.com
do-not-reply at jboss.com
Wed Dec 20 22:33:08 EST 2006
In general, I think shifting to a pull approach using the same process as the other state transfer types is the right thing to do. One set of code to maintain, etc, etc. The following bits look like I'm arguing in the opposite direction, but takes that as "food for thought", i.e. inputs into the discussion.
There are a couple problems with using a regular pull-type state transfer:
1) Deadlock problems, which is what led last spring to the push approach. Problem is new cache C comes online, decides A and B are its buddies, so sends A and B an RPC telling them. A and B get the RPC and request state. Problem is they are using the JG up_thread to request state, so it deadlocks.
That's probably solvable, but at the cost of making the buddy group formation protocol more complex.
2) A and B now have to independently request state rather than C doing a single push. Don't know if there are any issues with the coordination involved there. Now that we are using anycast, the network utilization is likely the same either way.
One thing to think about is whether the JBC-315 issue applies here. Or can it be made to go away w/o relying on FLUSH? Here the data in question is *owned* by the node that sends it. Anything that changes that state is originating on that server -- either via a locally originating put/remove call, or via a response to a gravitation call that the node sent out.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3995496#3995496
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3995496
More information about the jboss-dev-forums
mailing list