Hey,
These are my first steps with JBossCache, but it seems like I already face some
basic problem
Simple example:
2-node cluster, each with instance of treeCache. Out of AS.
REPL_SYNC, locking PESSIMISTIC, state is replicated on startup.
run the following algorithm on to machines concurrently:
Machine A:
for i=0..100
counter = tree.get(fqn,counter_key,counter_value);
counter++;
tree.set(fqn,counter_key);
Machine B:
exactly the same code
The result: of course counter is <<200 since we lack synchronization of given
get-put blocks.
As I already found out there is no cluster-wide lock. The locks I can
explicitly acquire on node are not broadcasted.
It seems that I need transactions for that.
Machine A:
for i=0..100
beginDummyTransaction
counter = tree.get(fqn,counter_key,counter_value);
counter++;
tree.put(fqn,counter_key);
commitDummyTransaction
Machine B: same as A.
Unfortunatelly with such approach I get TimeoutExceptions as B for some reason
cant aquire write-lock (or A).
The commit is a 2PC and from logs it really seems to work sync. The
lock-aquiring-problem occurs when the other transaction tries to commit.
Is there any way of providing 100% integity of data when heavy updates occur in
multiple cluster nodes? In my particular case, I need to buffer the stats of
user buisness-logic operations of very-heavy accessed web portal. Such updates
occur up to 100/sec per machine. Since there is no explicit cluster-wide
locking how can I achieve it? Is there a way of aquiring write-lock at the
begining of transaction (on read) and force other readers to wait till this
lock is realesed on commit ? Or something like that/simulation of critical
section.
I may not express myself clearly here so if you need any more info let me know.
Thanks for any light
M.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3959719#3959719
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3959719
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user