1 / 5

Assignment 2 - Solution

Assignment 2 - Solution 1. w 0 [x,y,z ] c 0 r 1 [x] r 2 [y] w 2 [y] r 3 [z] w 3 [z] r 2 [z] w 2 [y] w 1 [z] w 1 [y] c 1 c 2 c 3 a. An equivalent serial history must preserve the order of conflicting operations . So, which operations conflict? We’ll use  to mean

zytka
Télécharger la présentation

Assignment 2 - Solution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assignment 2 - Solution • 1. w0[x,y,z] c0 r1[x] r2[y] w2[y] r3[z] w3[z] r2[z] w2[y] w1[z] w1[y] c1 c2 c3 • a. An equivalent serial history must preserve the order of conflicting • operations. So, which operations conflict? We’ll use  to mean • “precedes and conflicts with”.w0[x,y,z]  all other reads and writesr2[y] and both w2[y]’s  w1[y]w3[z]  r2[z]r3[x] and w3[z] w1[z] • So, the only equivalent serial history has transactions in the order 0-3-2-1 • b. Since w3[z]  r2[z] and c2 c3 the history is not recoverable. Hence, it • doesn’t avoid cascading aborts and isn’t strict. There are two other • violations of strictness: w3[z] < w1[z] < c3 and w2[y] < w1[y] < c2.

  2. 2. w0[x,y,z] c0 r1[x] r2[y] w2[y] r3[z] r2[z] w2[y] w1[z] w1[y] c1 c2 c3 • (same as (1), except delete w3[z] ) • a. We no longer have w3[z]  r2[z]. So the order of T3 relative to T2 is unconstrained. Therefore, the history is now equivalent to a serial history with transactions in the order 0-3-2-1 or 0-2-3-1. • b. The history is now recoverable and avoids cascading aborts. But it still isn’t strict because w3[z] < w1[z] < c3 and w2[y]  w1[y]  c

  3. 3. w0[x,y,z] c0 r1[x] r2[y] w2[y] r3[z] w3[z] r2[z] w2[y] w1[z] w1[y] c1c3 c2 • (same as (1), except that c2 is moved after c3) • a. This has no effect on serializability, so the answer is the same as 1a.b. This also makes the history recoverable, since w3[z]  r2[z] and c3  c2. But it still doesn’t avoid cascading aborts, because of the same conflict: T2 reads uncommitted data (z) from T3. Obviously, it is not strict.

  4. 4. w0[x,y,z] c0 r1[x] r2[y] w2[x] r3[z] w3[z] r2[z] w2[y] w1[z] w1[y] c1 c2 c3 • (same as (1), except the first w2[y] becomes w2[x]) • a. Now we have r1[x]  w2[x] and w2[y]  w1[y] forming a cycle, so there is no equivalent serial history. • b. w3[z]  r2[z] and c2 c3 is unchanged from (1), so the history is not recoverable since T2 reads uncommitted data.

  5. 5. w0[x,y,z] c0 r1[x] r2[y] w2[y] r3[z] w3[z] r2[z] w2[y] c2 w1[z] w1[y] c1 c3 • (same as (1), except c2 is moved before w1[z])a. This has no effect on serializability • b.It is tempting to think that this helps strictness, since we now have w3[z] < c3 < w1[z] and w2[y] < c2 < w1[y]. But strictness implies avoidance of cascading aborts, which implies recoverability. And we still have the same old violation of recoverability: T2 still reads uncommitted data (z) from T3. So the execution isn’t strict.

More Related