Consider this schedule of two transactions:
T1 | T2 |
---|---|
r(X) | |
r(X) | |
w(Y) | |
w(Y) | |
commit | |
commit |
Is this schedule:
conflict serializable?
serializable?
recoverable?
cascadeless?
Consider this schedule of two transactions:
T1 | T2 |
---|---|
r(Y) | |
r(Y) | |
w(X) | |
r(X) | |
w(Y) | |
w(Y) | |
commit | |
commit |
Is this schedule:
conflict serializable?
serializable?
recoverable?
cascadeless?
Would any of the answers for schedule 2 change if we swapped the order of the two commits?
Precedence graphs can help us to determine if a schedule is conflict serializable.
Consider this schedule of four transactions:
T1 | T2 | T3 | T4 | |
---|---|---|---|---|
1 | r(X) | |||
2 | r(X) | |||
3 | w(Y) | |||
4 | r(Y) | |||
5 | r(Y) | |||
6 | w(X) | |||
7 | r(W) | |||
8 | w(Y) | |||
9 | r(W) | |||
10 | r(Z) | |||
11 | w(W) | |||
12 | r(Z) | |||
13 | w(Z) |
Draw a precedence graph for this schedule.
If the schedule is conflict serializable, state one possible equivalent serial schedule. If the schedule is not conflict serializable, explain briefly why the schedule is not equivalent to the serial schedule T1; T2; T3; T4. Your explanation should include a discussion of why particular actions from the original schedule are not consistent with that serial schedule.
In PS 3: Part II, you will implement portions of a simple relational DBMS.
The assignment includes a set of code-reading and design questions that will help you to become familiar with the provided code, and to map out a preliminary design for the code you will write.
Let’s work together on questions 8-10 from the section of the code-reading questions on marshalling.
Later, you should do questions 11 and 12 on your own, along with the rest of the code-reading and design questions.
As you work on the assignment, you should also consult the API pages for both the DBMS code framework and for Berkeley DB Java Edition.
Last updated on October 23, 2024.