[infinispan-dev] PutForExternalRead performance in 5.1

Slorg1 slorg1 at gmail.com
Fri Dec 16 07:57:42 EST 2011


Hi,

See below

On Fri, Dec 16, 2011 at 06:57, Galder Zamarreño <galder at jboss.org> wrote:
>
> On Dec 15, 2011, at 11:15 PM, Slorg1 wrote:
>
>>
>> I am thinking of something evil and wonder what you think about that.
>> I am supposing the fail silently code + solution #3.
>>
>> tx1                          |   tx2
>>                              |   Read data1
>> Read data1              |   PFER data1 -> fails silently
>>                              |   Commit data1-changed
>> PFER data1 (works?) |
>>
>> (sorry if this looks bad I did not major in ASCII-art).
>
> Sorry but I don't understand the sequence of events… numbered bullet points normally just work fine.

so 2 tx running in parallel , possibly on2 separate machines with
their 'cluster' set up with 'invalidation':

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. 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)

After 4 no one will see 'data1-changed' they will all see 'data1',
effectively holding onto stale data, or am I wrong?

I hope that the example is clearer.

Regards,

Slorg1


>>
>> Now what happens? Do all other tx see the old data1 or the new
>> data1-changed? or is this an impossible case ?
>> I am having a hard time seeing what would happen in the lap of time
>> between the commit of tx2 and the PFER of tx1 (outside of a tx). Like
>> which one would win.

-- 
Please consider the environment - do you really need to print this email ?



More information about the infinispan-dev mailing list