Hi,
See below,
On Thu, Dec 15, 2011 at 17:15, Slorg1 <slorg1(a)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 ?