First of all, I have to thank you for sharing your (brilliant!) thoughts! I read through your blog posts with great interest and I am very happy to see that there are still people out there thinking about old problems in a new and different way!
I stumbled upon one possible conflicting situation that I can not resolve on my own. I will try to describe it here and hope that you can help me out with that:
Assuming you have three machines A,B,C and two cache lines 1,2.
A is owner of 2 and holds a (still valid) copy of 1
B is owner of 1
C doesn't know any of those cache lines until now.
Now, two transactions happen concurrently (i.e. they do not notice each other in any way):
T1 runs on A and modifies 2 on the basis of the current value of 1
T2 runs on B and modifies 1
After those transactions have finished, machine C requests copies of the two cache lines.
Now, machine C has the value of 2 that is based on the old value of 1 and it has the new value of 1.
Doesn't this break your consistency assumptions? Is there some logic to prevent this situation from happening that I just missed?
Thanks in advance and again: "Go, go, go!"