10,887 views
8 votes
8 votes
I am unable to differentiate between a strict schedule and a cascadeless schedule...although what I have understood is that in strict schedule, we cannot perform read/write till the other transaction commits..but isnt this condition also valid for cascadeless schedules ?
Can someone please explain by giving an example.

1 Answer

Best answer
27 votes
27 votes

Strict schedules

 --->  A schedule is strict if: " A value written by a transaction T is not read or overwritten by other transactions until T either aborts or commits.

---> Strict schedules are recoverable and cascadeless.

Cascadeless schedules

---> Even if schedule is recoverable, several transactions may need to be rolled back to recover correctly.

---> Cascading Rollback: a single transaction failure leading to a series of rollbacks

      

         T1        T2          T3
R(A)    
R(B)    
W(B)    
  R(A)  
  W(A)  
    R(A)
Abort    

---> Cascadeless schedule: For any transactions Ti and Tj: if Tj reads data written by Ti, then Ti commits before read operation of Tj.

--> On a cascadeless schedule a transaction T2 cannot read a value a if a transaction T1 wrote a before that and didn't commit.

---> On a strict schedule T2 also wouldn't be able to write a after  T1 wrote it (even if it read a before T1 wrote it).

If you read carefully, the definition of strict says "not read or overwritten". That's the difference.

 from the Wikipedia page on the subject:

Another Solution

CASCADING ROLLBACK

An uncommitted transaction has to be rolled back because it read an item from a transaction that failed. This is the case for Se.

This form of rollback is undesirable, since it can lead to undoing a significant amount of work. It is desirable to restrict the schedules to those where cascading rollbacks cannot occur.

A schedule is said to avoid cascading rollback if every transaction in the schedule reads only items that were written by committed transactions. This guarantees that read items will not be discarded.

STRICT SCHEDULE

Transactions can neither read nor write an item X until the last transaction that wrote X has committed or aborted.

Strict schedules simplify the recovery process.

The process of undoing a write (X) operation of an aborted transaction is simply to restore the before image, the old-value for X.

Though this always works correctly for strict schedules, it may not work for recoverable or cascadeless schedules.

EXAMPLE:

Sf: w1(X, 5); w2(X, 8); a1;

Hope this will help.

selected by

Related questions

0 votes
0 votes
0 answers
4
learner_geek asked Nov 25, 2017
7,980 views
This is strict schedule or not?