[infinispan-issues] Mutable objects cached in Infinispan

Phillip Henry londonjavaman at gmail.com
Sat Apr 23 18:09:28 EDT 2011


Greetings, folks,

I've been tasked by my company with investigating Infinispan as a
distributed cache solution. I've played around with the tests that come with
it but I still have some questions. I hope this is an appropriate forum in
which I can ask them.

My question is this: how does Infinispan handle the caching of mutable
objects?

For instance, taking org.infinispan.replication.SyncReplLockingTest as a
template, I wrote some test code in which a reading thread gets a reference
to a particular element in the cache (within a transaction). While the
transaction of this reading thread was still in-flight, an updating thread
was able to mutate the object (also within a transaction). Since reading and
updating threads have a reference to the same object, race conditions are
introduced.

Note: the reading thread never explicitly locked this element in the cache.
I just assumed there would be some implicit locking. It could explicitly
lock the object but wouldn't this degrade performance? Isn't this exactly
why MVCC was used as a solution - to mitigate this overhead?

Furthermore, rolling back the transaction of the updating thread will not
rollback the changes made to a mutable object. So, am I missing something?
Am I approaching the problem the wrong way?

Regards for any input.

Cheers,

Phill

PS I was playing with the infinispan-5.0.0.ALPHA4 release.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-issues/attachments/20110423/4df5dca0/attachment.html 


More information about the infinispan-issues mailing list