[infinispan-dev] PutForExternalRead performance in 5.1

Mircea Markus mircea.markus at jboss.com
Fri Dec 16 11:59:54 EST 2011


> 
> 1. tx2 read data1.
> 2. it performs a PFER with fails for some random reason. With the new
> code you put in, that does not rollback the tx and continue as though
> nothing happened.
it's not only with the new code, that's part of PFER's contract.
Or do you need something that would force an invalidation before the transaction commits?
> At the same time, tx1 reads the same data1.
> 3. tx2 commits changes to data1 (now called data1-changed).
> 4. tx1 after reading the data, does a PFER of what it just read: data1
> (the unchanged version)
why does tx1 try to update a pice of data it hasn't changed... 
> 
> After 4 no one will see 'data1-changed' they will all see 'data1',
> effectively holding onto stale data, or am I wrong?

yes. Same thing would happen though even if PFER is guaranteed to succeed: in the case tx1 reads data1 before the PFER, it would keep it in it's tx context and the invalidation message doesn't remove data from the tx context, but only from the main node's storage.


More information about the infinispan-dev mailing list