reset password
Author Message
cherylmj01
Posts: 13
Posted 16:59 Jun 05, 2016 |

Sir, Could you please give an example for this ?

 Extending Multiversion Locking protocol to the read operations in read-write transactions. Specifically, for a read-write transaction T :

If a block is updated by T, subsequent read operations in T will read from the version of the block produced by T.

How to prove that this "modified Multiversion Locking protocol" may produce non-serializable schedules. ?

cysun
Posts: 2935
Posted 19:28 Jun 05, 2016 |

I don't plan to give out the solution to that question, and there are no office hours in the final week either. The following is what I explained to another student regarding Multiversion Locking Protocol. You'll have to figure out the answer by applying your knowledge about serializablility.

"The key to understand Multiversion Locking Protocol is that the conflicting operations are determined differently from regular schedules. For example, suppose we have T1: w1(x), c1 and T2: r2(x), c2. Consider the sequence "w1(x), r2(x), c2, c1". For a regular schedule (i.e. using some currency control mechanism other than Multiversion Locking), the conflicting operations are w1(x)->r2(x), resulting an edge T1->T2 (i.e. T1 precedes T2) in the precedence graph. However, under Multiversion Locking, since T1 is not committed when T2 starts, r2(x) will read the old value of x, so in the precedence graph it's actually T2->T1."
 

cherylmj01
Posts: 13
Posted 19:55 Jun 05, 2016 |

I am not clear with the meaning of  "subsequent read operations in T will read from the version of the block produced by T"

Does this line mean that for a Transaction T : r1(x), w1(x)

r1(x) will read from what is produced by w1(x) ?

 

cysun
Posts: 2935
Posted 20:05 Jun 05, 2016 |
cherylmj01 wrote:

I am not clear with the meaning of  "subsequent read operations in T will read from the version of the block produced by T"

Does this line mean that for a Transaction T : r1(x), w1(x)

r1(x) will read from what is produced by w1(x) ?

"subsequent read operations" means the read operations that come after the write operation. In other words, like "w1(x),r1(x)" instead of the other way around.

cherylmj01
Posts: 13
Posted 20:07 Jun 05, 2016 |

Ok, Thank you sir :)

jcalilu
Posts: 20
Posted 00:14 Jun 07, 2016 |
cysun wrote:

I don't plan to give out the solution to that question, and there are no office hours in the final week either. The following is what I explained to another student regarding Multiversion Locking Protocol. You'll have to figure out the answer by applying your knowledge about serializablility.

"The key to understand Multiversion Locking Protocol is that the conflicting operations are determined differently from regular schedules. For example, suppose we have T1: w1(x), c1 and T2: r2(x), c2. Consider the sequence "w1(x), r2(x), c2, c1". For a regular schedule (i.e. using some currency control mechanism other than Multiversion Locking), the conflicting operations are w1(x)->r2(x), resulting an edge T1->T2 (i.e. T1 precedes T2) in the precedence graph. However, under Multiversion Locking, since T1 is not committed when T2 starts, r2(x) will read the old value of x, so in the precedence graph it's actually T2->T1."
 

Using your example above, can we say that since a Multiversion Locking  Protocol (MLP) result differs from a Regular Schedule result (different determination of conflicting operations), that MLP can produce non-serializable schedules because of the example given above?

cysun
Posts: 2935
Posted 00:50 Jun 07, 2016 |
jcalilu wrote:
cysun wrote:

I don't plan to give out the solution to that question, and there are no office hours in the final week either. The following is what I explained to another student regarding Multiversion Locking Protocol. You'll have to figure out the answer by applying your knowledge about serializablility.

"The key to understand Multiversion Locking Protocol is that the conflicting operations are determined differently from regular schedules. For example, suppose we have T1: w1(x), c1 and T2: r2(x), c2. Consider the sequence "w1(x), r2(x), c2, c1". For a regular schedule (i.e. using some currency control mechanism other than Multiversion Locking), the conflicting operations are w1(x)->r2(x), resulting an edge T1->T2 (i.e. T1 precedes T2) in the precedence graph. However, under Multiversion Locking, since T1 is not committed when T2 starts, r2(x) will read the old value of x, so in the precedence graph it's actually T2->T1."
 

Using your example above, can we say that since a Multiversion Locking  Protocol (MLP) result differs from a Regular Schedule result (different determination of conflicting operations), that MLP can produce non-serializable schedules because of the example given above?

No. The schedule in the example is serializable (it produces the same results as T2,T1).