[jbosscache-users] Cache Consistency following transient Network Outage?

Bill Doster billdo at umich.edu
Wed Nov 7 13:13:30 EST 2007


I'm hoping that JBoss Cache can recover cache consistency following a
transient network outage.  From my readings of both Cache and JGroups,
I've ended up thinking that it's JGroups that notices begin-and-end
of network partitions and that JGroups then notifies dependent classes
so that they know that they need to deal with the potential merging of
any higher-level state changes in each sub-cluster during the network  
partition.

This seems consistent with a recent response from Bela Ban (2007.0914):

	http://sourceforge.net/mailarchive/message.php? 
msg_id=46EA2BA0.9090508%40yahoo.com

But from my understanding of JBoss Cache (the dependent class I'm  
considering) via:

	"JBoss Cache TreeCache: A Structured, Replicated, Transactional Cache"
	(http://labs.jboss.com/file-access/default/members/jbosscache/ 
freezone/docs/1.4.1.SP4/TreeCache/en/html_single/index.html)

I can't identify anything as directly addressing JBoss Cache's  
"application-data" healing from a network partition...

Here's a particular test scenario that would need to handle the  
situation I'm thinking of:

	JBoss Cache ClusterName="A-B" with two members ("A" and "B") is  
started.

	"A" and "B" both view "A" as "coordinator".

	To keep things simple, let's have only a single region.

	No Cache Loaders are used -- thus all Cache state exists only in- 
memory (no back-end data store).

Time passes peacefully and "A-B" builds up some amount of Cache  
state, all of it consistent across A and B.

Then, a network partition occurs (perhaps a backbone router is  
powered down for 10-15 minutes to add an additional card).

	After some amount of time, both A and B finally end-up marking each  
other "dead" and themselves
	as JGroup coordinator for their sub-cluster.

During this partition, both A and B can continue to accept updates to  
their Cache state, right?
And this would result in the now-independent Caches becoming distinct  
from each other.

So, once the result of the network partition is resolved, JGroups  
will realize this and notify JBoss Cache
via a ViewChange.

My question is:

	 does JBoss Cache itself somehow merge the during-partition state  
changes together?

Since neither member was itself down and both could potentially have  
partition-related state changes,
causing either to simply dump their in-memory state and ask for a  
full state-transfer will result in a
loss of information.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbosscache-users/attachments/20071107/65fe5acf/attachment.html 


More information about the jbosscache-users mailing list