[infinispan-dev] Rehashing and ongoing transactions

Manik Surtani manik at jboss.org
Mon Jan 31 16:24:41 EST 2011


Guys,

I see this in the code base:

https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/interceptors/DistributionInterceptor.java#L247

which has come in as a part of this commit:

https://github.com/infinispan/infinispan/commit/e85204dc34e058c256846699acc21f4dd6f08c4d

This is no good, since throwing an IllegalStateException *after* a transaction has prepared and is attempting to commit will leave the transaction in an inconsistent state.  This is why I see heuristic exceptions when trying to stress a lot of transactions while having nodes join/leave.

A few points:

1) Mircea, are you aware of this, and is this a part of the transaction refactoring you are working on?
2) If not, it probably should be.  ;)
3) Vladimir, why is this check necessary in the first place?  If prepares have happened on nodes A and B, and the commit should now go to nodes B and C due to a rehash, can't we send the commit to a union of A, B and C, and let the nodes that don't care about the tx anymore just ignore the commit?

Cheers
Manik
--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani

Lead, Infinispan
http://www.infinispan.org



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20110131/098e881b/attachment.html 


More information about the infinispan-dev mailing list