[infinispan-dev] PutForExternalRead performance in 5.1

Slorg1 slorg1 at gmail.com
Thu Dec 15 17:33:52 EST 2011


Hi,

See below,

On Thu, Dec 15, 2011 at 17:15, Slorg1 <slorg1 at gmail.com> wrote:
> Hi,
>
> See question below,
>
>
>
> 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).
>
> 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.

I just thought some more about it and while it may not cause a failure
on a local cache, I think that if tx1 happens on 1 cache and tx2
happens on a remote cache set up with invalidation, it is much more
likely for all transactions to never know that tx2 ever changed the
data.
e.g.

tx1                          |   tx2
                              |   Read data1
 Read data1             |   PFER data1 -> fails silently
                              |   Commit data1-changed
INVALIDATE data1  |
 PFER data1 (works?) |

The read and the PFER are not atomic as far as I can tell, unless I
missed something and I apologize in advance if I did.

Regards,

Slorg1

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



More information about the infinispan-dev mailing list