On 10-11-30 9:34 AM, Mircea Markus wrote:
What I'm saying It might be very wrong, but trying :)
Isn't it possible to make the invalidation of K on B part of the transaction commit?
I.e. the invalidation on B sees that K is locked by an tx that is not committed and it
skips the invalidation. When tx commits (second phase) it multicasts the commit message to
all the lock owners_including_ B (all the owners == {A, B, D}). When CommitCOmmand is
received, B checks weather or not it still is an data owner for each key: if it is the it
applies it, otherwise it removes it.
I like your solution. It seems to be less
disruptive to ongoing
transactions then the other two solutions.
How would you safely detect that K is locked by another tx and thus skip
locking?