reset password
Author Message
lishenyu
Posts: 103
Posted 13:37 Dec 03, 2015 |

~T1: w1(b1), w1(b2)
T2: w2(b1), w2(b2)
T3: r3(b1), r3(b2)
T4: w4(b2)
 

After watching the video I still didn't hear clearly at last about r3(b2) reads Tx1 or Tx2 ?  The protocol says "~it reads from the block that was most recently committed at the time when this transaction began"  , 'this transaction' refers to which transaction ? Many thanks!

lishenyu
Posts: 103
Posted 17:59 Dec 03, 2015 |

As far as I know if a sequence has no cycle in its precedence graph then it's serializable. So what's the relationship between multiversion and serializable? thanks!

gbkprajapati
Posts: 8
Posted 18:03 Dec 03, 2015 |

r3(b2) reads T1 . as per protocol says.

Last edited by gbkprajapati at 18:03 Dec 03, 2015.
cysun
Posts: 2935
Posted 20:01 Dec 03, 2015 |
lishenyu wrote:

As far as I know if a sequence has no cycle in its precedence graph then it's serializable. So what's the relationship between multiversion and serializable? thanks!

Multiversion Locking is a protocol that ensures serializability.

lishenyu
Posts: 103
Posted 20:40 Dec 03, 2015 |
cysun wrote:
lishenyu wrote:

As far as I know if a sequence has no cycle in its precedence graph then it's serializable. So what's the relationship between multiversion and serializable? thanks!

Multiversion Locking is a protocol that ensures serializability.

for this sequence:

~w1(b1),w1(b2),c1,w2(b1),r3(b1),w4(b2),c4,r3(b2),c3,w2(b2),c2

the most recently committed transaction when T3 began is T4, so r3(b2) should read b2 from T4, is this understanding correct ?if not ,why ? thanks! 
 

cysun
Posts: 2935
Posted 08:45 Dec 04, 2015 |
lishenyu wrote:
cysun wrote:
lishenyu wrote:

As far as I know if a sequence has no cycle in its precedence graph then it's serializable. So what's the relationship between multiversion and serializable? thanks!

Multiversion Locking is a protocol that ensures serializability.

for this sequence:

~w1(b1),w1(b2),c1,w2(b1),r3(b1),w4(b2),c4,r3(b2),c3,w2(b2),c2

the most recently committed transaction when T3 began is T4, so r3(b2) should read b2 from T4, is this understanding correct ?if not ,why ? thanks! 
 

That's incorrect. Because r3(b1) is before c4, T4 didn't commit before T3 began.