in Databases
281 views
1 vote
1 vote
Is only conflict serializable schedules are recoverable?
Or both view as well as conflict serializable schedules are recoverable?

I have been seeing different answers in different forum.
in Databases
281 views

2 Answers

1 vote
1 vote
There is no relationship between recoverability and serializability.

Just consider this example:

T1                   T2

W(A)

                    R(A)

                   commit

commit

This is conflict seralizable but not recoverable.

3 Comments

But any Serial schedule is bound to be recoverable, as one transaction T2 can only start after the end of the previous transaction T1 which should include a commit (in the end) in general case. Hence, no chance of irrecoverability there.

Although if we're considering a schedule which is concurrent but can be serialized, is different case then the above, as conflict serializable does not necessarily make the entire schedule Serial. It's just swapping the conflicting pairs.

For your given example, if we make the schedule like this -

W1(a), Commit1, R2(a), Commit2.

This is a perfect serial schedule and just like this, any perfect serial schedule is bound to be recoverable.
0
0
edited by

What is recoverable schedule?

→ Here S is a schedule.

 

So according to this definition my given example is not recoverable.

You can check this link also:(Pg- 15)

https://web.stanford.edu/class/cs245/spr2019/slides/15-Distributed.pdf

You can check this also:

https://ccsuniversity.ac.in/bridge-library/pdf/MCA-0305-DBMS-UNIT-V.pdf   (Pg-17)

Another thing:

Just see this points :

Here you can see that in both questions option A are not true.

https://web.stanford.edu/class/cs245/exams/final_spr19_sol.pdf  (Pg 2)

3
3
Thanks got it.
0
0
0 votes
0 votes

A schedule S is serial if, for every transaction T participating in the schedule, all the operations of T are executed consecutively in the schedule; otherwise, the schedule is called non-serial. Therefore, in a serial schedule, only one transaction at a time is active—the commit (or abort) of the active transaction initiates execution of the next transaction.

As only one transaction is active it is always recoverable.

Related questions