Introduction to Transaction Processing Concepts and Theory 1

  • Slides: 71
Download presentation
 Introduction to Transaction Processing Concepts and Theory 1

Introduction to Transaction Processing Concepts and Theory 1

 1 Introduction to Transaction Processing (1) m m A transaction is a q

1 Introduction to Transaction Processing (1) m m A transaction is a q sequence of operations whose execution transforms a database from one consistent state to another consistent state. q A logical unit of database processing that includes one or more access operations (read retrieval, write - insert or update, delete). Transaction boundaries: q Begin and End transaction. Consistent state: the data currently in the database satisfy all integrity constraints defined for the database. During transaction execution the database may be inconsistent. 2

 Introduction to Transaction Processing (2) m When the transaction is committed, the database

Introduction to Transaction Processing (2) m When the transaction is committed, the database must be consistent. Execution of transaction Consistent Database State Possible inconsistent state m Consistent Database State Two main issues to deal with: q Failures of various kinds, such as hardware failures and system crashes q Concurrent execution of multiple transactions 3

 Introduction to Transaction Processing (3) m Consider a transaction that transfers $200 from

Introduction to Transaction Processing (3) m Consider a transaction that transfers $200 from account A to account B. read(A) A = A - 200 write(A) read(B) B = B + 200 write(B) System crash 4

 Introduction to Transaction Processing (4) m Single-User System: q At most one user

Introduction to Transaction Processing (4) m Single-User System: q At most one user at a time can use the system. m Multiuser System: q Many users can access the system concurrently. m Concurrency q Interleaved processing: Ø Concurrent execution of processes is interleaved in a single CPU q Parallel processing: Ø Processes are concurrently executed in multiple CPUs. 5

 Introduction to Transaction Processing (5) m A database is a collection of named

Introduction to Transaction Processing (5) m A database is a collection of named data items. m The size of a data item is called granularity. It can be q a field, a record , or a whole disk block m Basic operations are read and write q q m read_item(X): Reads a database item named X into a program variable. To simplify our notation, we assume that the program variable is also named X. write_item(X): Writes the value of program variable X into the database item named X. Basic unit of data transfer from the disk to the computer main memory is one block. 6

 Introduction to Transaction Processing (6) m In general, a data item (what is

Introduction to Transaction Processing (6) m In general, a data item (what is read or written) will be the field of some record in the database, although it may be a larger unit such as a record or even a whole block. m read_item(X) command includes the following steps: q Find the address of the disk block that contains item X. q Copy that disk block into a buffer in main memory (if that disk block is not already in some main memory buffer). q Copy item X from the buffer to the program variable named X. 7

 Introduction to Transaction Processing (7) m write_item(X) command includes the following steps: q

Introduction to Transaction Processing (7) m write_item(X) command includes the following steps: q Find the address of the disk block that contains item X. q Copy that disk block into a buffer in main memory (if that disk block is not already in some main memory buffer). q Copy item X from the program variable named X into its correct location in the buffer. q Store the updated block from the buffer back to disk (either immediately or at some later point in time). 8

 Introduction to Transaction Processing (8) m FIGURE 17. 2 Two sample transactions: q

Introduction to Transaction Processing (8) m FIGURE 17. 2 Two sample transactions: q (a) Transaction T 1 (b) Transaction T 2 9

 m m Why Concurrency Control is needed Multiple transactions are allowed to run

m m Why Concurrency Control is needed Multiple transactions are allowed to run concurrently. Advantages are: q increased processor and disk utilization, leading to better transaction throughput Ø one transaction can be using the CPU while another is reading from or writing to the disk Ø throughput: # of transactions executed in a given amount if time. q reduced average response time for transactions Ø short transactions need not wait behind long ones. m Concurrency control is needed to achieve isolation i. e. , to control the interaction among the concurrent transactions in order to prevent them from destroying the database consistency. 10

 Why Concurrency Control is needed m Problems occur when concurrent transactions execute in

Why Concurrency Control is needed m Problems occur when concurrent transactions execute in an uncontrolled manner: q The Lost Update q The Temporary Update (or Dirty Read) q The Incorrect Summary q Unrepeatable Read: Ø A transaction T 1 may read a given value. If another transaction later updates that value and T 1 reads that value again, then T 1 will see a different value. 11

 The Lost Update Problem m This occurs when two transactions that access the

The Lost Update Problem m This occurs when two transactions that access the same database items have their operations interleaved in a way that makes the value of some database item incorrect. 12

The Temporary Update Problem (Dirty Read) m This occurs when one transaction updates a

The Temporary Update Problem (Dirty Read) m This occurs when one transaction updates a database item and then the transaction fails for some reason. q The updated item is accessed by another transaction before it is changed back to its original value. 13

 Incorrect Summary Problem m If one transaction is calculating an aggregate summary function

Incorrect Summary Problem m If one transaction is calculating an aggregate summary function on a number of records while other transactions are updating some of these records, the aggregate function may calculate some values before they are updated and others after they are updated. 14

 Incorrect Summary Problem 15

Incorrect Summary Problem 15

 Why Recovery is needed m m What causes a Transaction to fail 1.

Why Recovery is needed m m What causes a Transaction to fail 1. A computer failure (system crash): q A hardware or software error occurs in the computer system during transaction execution. If the hardware crashes, the contents of the computer’s internal memory may be lost. m 2. A transaction or system error: q Some operation in the transaction may cause it to fail, such as integer overflow or division by zero. Transaction failure may also occur because of erroneous parameter values or because of a logical programming error. In addition, the user may interrupt the transaction during its execution. 16

 Why Recovery is needed m 3. Local errors or exception conditions detected by

Why Recovery is needed m 3. Local errors or exception conditions detected by the transaction: q Certain conditions necessitate cancellation of the transaction. For example, data for the transaction may not be found. A condition, such as insufficient account balance in a banking database, may cause a transaction, such as a fund withdrawal from that account, to be canceled. q A programmed abort in the transaction causes it to fail. m 4. Concurrency control enforcement: q The concurrency control method may decide to abort the transaction, to be restarted later, because it violates serializability or because several transactions are in a state of deadlock (see Chapter 18). 17

 Why Recovery is needed m 5. Disk failure: q Some disk blocks may

Why Recovery is needed m 5. Disk failure: q Some disk blocks may lose their data because of a read or write malfunction or because of a disk read/write head crash. This may happen during a read or a write operation of the transaction. m 6. Physical problems and catastrophes: q This refers to an endless list of problems that includes power or air-conditioning failure, fire, theft, sabotage, overwriting disks or tapes by mistake, and mounting of a wrong tape by the operator. 18

 2 Transaction and System Concepts (1) m A transaction is an atomic unit

2 Transaction and System Concepts (1) m A transaction is an atomic unit of work that is either completed in its entirety or not done at all. q For recovery purposes, the system needs to keep track of when the transaction starts, terminates, and commits or aborts. m A transaction must be in one of the following states: q Active: Ø the initial state; the transaction stays in this state while it is executing q Partially committed: Ø after the final statement has been executed. q Failed: Ø after the discovery that normal execution can no longer proceed. 19

 Transaction and System Concepts (2) q Committed: Ø after successful completion. q Aborted:

Transaction and System Concepts (2) q Committed: Ø after successful completion. q Aborted: Ø after the transaction has been rolled back and the database restored to its state prior to the start of the transaction. Two options after it has been aborted: – restart the transaction (only if no internal logical error) – kill the transaction 20

 Transaction and System Concepts (3) m Recovery manager keeps track of the following

Transaction and System Concepts (3) m Recovery manager keeps track of the following operations: q begin_transaction Ø This marks the beginning of transaction execution. q read or write: Ø These specify read or write operations on the database items that are executed as part of a transaction. q end_transaction: Ø This specifies that read and write transaction operations have ended and marks the end limit of transaction execution. Ø At this point it may be necessary to check whether the changes introduced by the transaction can be permanently applied to the database or whether the transaction has to be aborted because it violates concurrency control or for some other reason. 21

 Transaction and System Concepts (4) m Recovery manager keeps track of the following

Transaction and System Concepts (4) m Recovery manager keeps track of the following operations (cont): q commit_transaction: Ø This signals a successful end of the transaction so that any changes (updates) executed by the transaction can be safely committed to the database and will not be undone. q rollback (or abort): Ø This signals that the transaction has ended unsuccessfully, so that any changes or effects that the transaction may have applied to the database must be undone. 22

 Transaction and System Concepts (5) m Recovery techniques use the following operators: q

Transaction and System Concepts (5) m Recovery techniques use the following operators: q undo: Ø Similar to rollback except that it applies to a single operation rather than to a whole transaction. q redo: Ø This specifies that certain transaction operations must be redone to ensure that all the operations of a committed transaction have been applied successfully to the database. 23

 State transition diagram illustrating the states for transaction execution Rollback 24

State transition diagram illustrating the states for transaction execution Rollback 24

 The System Log m Log or Journal: The log keeps track of all

The System Log m Log or Journal: The log keeps track of all transaction operations that affect the values of database items. q This information may be needed to permit recovery from transaction failures. q The log is kept on disk, so it is not affected by any type of failure except for disk failure. q In addition, the log is periodically backed up to archival storage to guard against such failures. 25

 The System Log m m T in the following discussion refers to a

The System Log m m T in the following discussion refers to a unique transactionid that is generated automatically by the system and is used to identify each transaction: Types of log record: q [start_transaction, T]: Ø Records that transaction T has started execution. q [write_item, T, X, old_value, new_value]: Ø Records that transaction T has changed the value of database item X from old_value to new_value. q [read_item, T, X]: Ø Records that transaction T has read the value of database item X. q [commit, T]: Ø Records that transaction T has completed successfully, and affirms that its effect can be committed (recorded permanently) to the database. q [abort, T]: Ø Records that transaction T has been aborted. 26

 The System Log m Protocols for recovery that avoid cascading rollbacks do not

The System Log m Protocols for recovery that avoid cascading rollbacks do not require that read operations be written to the system log, whereas other protocols require these entries for recovery. m Strict protocols require simpler write entries that do not include new value (see Section 17. 4). 27

 Recovery Using Log Records m If the system crashes, we can recover to

Recovery Using Log Records m If the system crashes, we can recover to a consistent database state by examining the log and using one of the techniques described in Chapter 19. q Because the log contains a record of every write operation that changes the value of some database item, it is possible to undo the effect of these write operations of a transaction T by tracing backward through the log and resetting all items changed by a write operation of T to their old_values. q We can also redo the effect of the write operations of a transaction T by tracing forward through the log and setting all items changed by a write operation of T (that did not get done permanently) to their new_values. 28

 Commit Point of a Transaction m Commit Point: q A transaction T reaches

Commit Point of a Transaction m Commit Point: q A transaction T reaches its commit point when all its operations that access the database have been executed successfully and the effect of all the transaction operations on the database has been recorded in the log. q Beyond the commit point, the transaction is said to be committed, and its effect is assumed to be permanently recorded in the database. q The transaction then writes an entry [commit, T] into the log. 29

 Commit Point of a Transaction m m Roll Back of transactions: q Needed

Commit Point of a Transaction m m Roll Back of transactions: q Needed for transactions that have a [start_transaction, T] entry into the log but no commit entry [commit, T] into the log. Redoing transactions: q q m Transactions that have written their commit entry in the log must also have recorded all their write operations in the log; otherwise they would not be committed, so their effect on the database can be redone from the log entries. Notice that the log file must be kept on disk. Ø At the time of a system crash, only the log entries that have been written back to disk are considered in the recovery process because the contents of main memory may be lost. Force writing a log: q q Before a transaction reaches its commit point, any portion of the log that has not been written to the disk yet must now be written to the disk. This process is called force-writing the log file before committing a transaction. 30

 3 Desirable Properties of Transactions (1) The ACID properties of a transaction q

3 Desirable Properties of Transactions (1) The ACID properties of a transaction q Atomicity Ø a transaction is an atomic processing unit; it is either performed in its entirety or not performed at all. q Consistency Ø a transaction transforms a database from a consistent state to another consistent state. q Isolation Ø A transaction should not make its updates visible to other transactions until it is committed; this property, when enforced strictly, solves the temporary update problem. q Durability Ø committed work must never be lost due to subsequently failure. 31

 ACID Properties m Example: T 1 read(X) X = X + 100 T

ACID Properties m Example: T 1 read(X) X = X + 100 T 2 read(X) X = X - 50 write(X) m value of X 200 (initial value) 300 (not saved yet) 200 150 (not saved yet) 300 (saved) 150 (overwrite 300) lost $100! Correct value of X should be 250. 32

 4 Schedules m A schedule S of n transactions T 1, T 2,

4 Schedules m A schedule S of n transactions T 1, T 2, . . . , Tn is an ordering of all the operations in these transactions subject to the constraint that: q for each transaction Ti, the operations of Ti in S must appear in the same order as they do in Ti. ØNote, however, that operations from other transactions Tj can be interleaved with the operations of Ti in S. m Example: Given q T 1 = R 1(Q) W 1(Q) qa schedule: q not a schedule: & T 2 = R 2(Q) W 2(Q) R 1(Q) R 2(Q) W 1(Q) W 2(Q) W 1(Q) R 2(Q) W 2(Q) 33

 Schedules m Sa: r 1(X); r 2(X); w 1(X); r 1(Y); w 2(X);

Schedules m Sa: r 1(X); r 2(X); w 1(X); r 1(Y); w 2(X); w 1(Y); 34

 Schedules m Sb: r 1(X); w 1(X); r 2(X); w 2(X); r 1(Y);

Schedules m Sb: r 1(X); w 1(X); r 2(X); w 2(X); r 1(Y); a 1; 35

 Conflict Operations Instructions (Operations) li and lj of transactions Ti and Tj respectively,

Conflict Operations Instructions (Operations) li and lj of transactions Ti and Tj respectively, conflict if and only if there exists some item Q accessed by both li and lj, and at least one of these instructions wrote Q. 1. li = Read(Q), lj = Read(Q). li and lj don’t conflict 2. li = Read(Q), lj = Write(Q). They conflict 3. li = Write(Q), lj = Read(Q). They conflict 4. li = Write(Q), lj = Write(Q). They conflict m m Two operations in a schedule are conflict if: 1) They belong to different transactions, 2) They access the same item Q, and 3) At least one them is a Write(Q) operation. 36

 Recoverable Schedule m Recoverable schedule: One where no committed transaction needs to be

Recoverable Schedule m Recoverable schedule: One where no committed transaction needs to be rolled back. A schedule S is recoverable if no transaction T in S commits until all transactions T’ that have written an item that T reads have committed. T reads from T’ in S if X is first written by T’ and later read by T. q T’ should not have been aborted before T reads X q There should be no transaction Ti that writes X after T’ writes it before T reads it (unless Ti, if any, has aborted before T reads X). q m m m Sa, Sb and Sa’ are recoverable: q Sa’: r 1(X); r 2(X); w 1(X); r 1(Y); w 2(X); c 2; w 1(Y); c 1; 37

 Recoverable Schedule m m Consider the following schedules: q Sc: r 1(X); w

Recoverable Schedule m m Consider the following schedules: q Sc: r 1(X); w 1(X); r 2(X); r 1(Y); w 2(X); c 2; a 1; q Sd: r 1(X); w 1(X); r 2(X); r 1(Y); w 2(X); w 1(Y); c 1; c 2; q Se: r 1(X); w 1(X); r 2(X); r 1(Y); w 2(X); w 1(Y); a 1; a 2; Sc is not recoverable because: q T 2 reads item X from T 1, and then T 2 commits before T 1 commits. q If T 1 aborts after c 2 operation in Sc, then the value of X that T 2 read is no longer valid and T 2 must be aborted after it is committed, leading to a schedule that is not recoverable. q For the schedule to be recoverable c 2 operation in Sc must be postponed until after T 1 commits, as shown in Sd; q If T 1 aborts instead of committing, then T 2 should also abort as shown in Se, because the value of X it read is no longer valid. 38

 Cascade-less Schedule m Schedules requiring cascaded rollback: q A schedule in which uncommitted

Cascade-less Schedule m Schedules requiring cascaded rollback: q A schedule in which uncommitted transactions that read an item from a failed transaction must be rolled back. Ø As shown in schedule Se m Cascadeless Schedule: q One where every transaction reads only the items that are written by committed transactions. Ø r 2(X) in Sd and Se must be postponed until after T 1 has committed (or aborted), thus delaying T 2 but ensuring no cascading rollback if T 1 aborts. 39

 Cascade-less Schedule m m m Strict Schedules: q A schedule in which a

Cascade-less Schedule m m m Strict Schedules: q A schedule in which a transaction can neither read or write an item X until the last transaction that wrote X has committed. Consider the following schedule: q Sf: w 1(X, 5); w 2(X , 8); a 1; q Suppose the value of X was originally 9. q If T 1 aborts, as in Sf, the recovery system will restore the value of X to 9, even though it has already been changed to 8 by T 2, thus leading to incorrect results. Although Sf is cascade-less, it is not strict q It permits T 2 to write X even though T 1 that last wrote X had not yet committed (or aborted). 40

 Schedules Classification m In term of: q 1. Recoverability q 2. Avoidance of

Schedules Classification m In term of: q 1. Recoverability q 2. Avoidance of cascading rollback q 3. Strictness m Condition 2 implies condition 1, and condition 3 implies both 1 and 2. m Thus, q all strict schedules are cascade-less, and q All cascade-less schedules are recoverable 41

 Recoverability m m m Need to address the effect of transaction failures on

Recoverability m m m Need to address the effect of transaction failures on concurrently running transactions. Recoverable schedule q if a transaction Tj reads a data items previously written by a transaction Ti, the commit operation of Ti appears before the commit operation of Tj. The following schedule (Schedule 11) is not recoverable if T 9 commits immediately after the read 42

 Recoverability m If T 8 should abort, T 9 would have read (dirty

Recoverability m If T 8 should abort, T 9 would have read (dirty read) an inconsistent database state. Hence database must ensure that schedules are recoverable. 43

 Recoverability (Cont. ) m Cascading rollback q a single transaction failure leads to

Recoverability (Cont. ) m Cascading rollback q a single transaction failure leads to a series of transaction rollbacks. q Consider the following schedule where none of the transactions has yet committed (so the schedule is recoverable) q If T 10 fails, T 11 and T 12 must also be rolled back. 44

 Recoverability (Cont. ) m Can lead to the undoing of a significant amount

Recoverability (Cont. ) m Can lead to the undoing of a significant amount of work Cascadeless schedules q cascading rollbacks cannot occur; for each pair of transactions Ti and Tj such that Tj reads a data item previously written by Ti, the commit operation of Ti appears before the read operation of Tj. m Every cascadeless schedule is also recoverable m m It is desirable to restrict the schedules to those that are cascadeless 45

 Schedules m A schedule S is serial, q if for every transaction T

Schedules m A schedule S is serial, q if for every transaction T participating in the schedule, all the operations of T are executed consecutively Ø if operations from different transactions are not interleaved. q otherwise the schedule is called nonserial. m Serial schedules: q R 1(Q) W 1(Q) R 2(Q) W 2(Q) q R 2(Q) W 2(Q) R 1(Q) W 1(Q) m Non-serial schedule: q R 1(Q) R 2(Q) W 1(Q) W 2(Q) 46

 Example Schedules m The following is a serial schedule (Schedule 1), in which

Example Schedules m The following is a serial schedule (Schedule 1), in which T 1 is followed by T 2. 47

 Example Schedule (Cont. ) m m The following schedule (Schedule 3) is not

Example Schedule (Cont. ) m m The following schedule (Schedule 3) is not a serial schedule, but it is equivalent to Schedule 1. In both Schedule 1 & 3, the sum A+B is preserved. 48

 Example Schedules (Cont. ) m The following concurrent schedule (Schedule 4) does not

Example Schedules (Cont. ) m The following concurrent schedule (Schedule 4) does not preserve the value of the sum A + B. 49

 Example Schedules m m (a) Serial schedule A: T 1 followed by T

Example Schedules m m (a) Serial schedule A: T 1 followed by T 2. (b) Serial schedules B: T 2 followed by T 1. 50

 Example Schedule (Cont. ) m (c) Two nonserial schedules C and D with

Example Schedule (Cont. ) m (c) Two nonserial schedules C and D with interleaving of operations. 51

 Several Observations m m Serial schedule guarantees database consistency. n transactions may form

Several Observations m m Serial schedule guarantees database consistency. n transactions may form n! different serial schedules. Different serial schedule may produce different result. q Suppose Q = 20 initially. q R 1(Q), Q=Q+10, W 1(Q), R 2(Q), Q=Q*2, W 2(Q) produces Q = 60 q R 2(Q), Q=Q*2, W 2(Q), R 1(Q), Q=Q+10, W 1(Q) produces Q = 50 Allowing only serial schedule may cause poor system performance (i. e. , low throughput) 52

 Several Observations m Serial schedule is not a must for guaranteeing transaction consistency.

Several Observations m Serial schedule is not a must for guaranteeing transaction consistency. m If X and Y are independent, then the following two schedules always produces the same result: q non-serial schedule: ØR 1(X) W 1(X) R 2(X) W 2(X) R 1(Y) W 1(Y) q serial schedule: ØR 1(X) W 1(X) R 1(Y) W 1(Y) R 2(X) W 2(X) 53

 Serializability m A schedule S of n transactions is serializable if it is

Serializability m A schedule S of n transactions is serializable if it is equivalent to some serial schedule of the same n transactions. m Basic Assumption q each transaction preserves database consistency m We ignore operations other than read and write instructions q schedules consist of only read and write instructions 54

 Serializability One way to ensure correctness of concurrent transactions is to enforce serializability

Serializability One way to ensure correctness of concurrent transactions is to enforce serializability of transactions q that is the interleaved execution of the transactions must be equivalent to some serial execution of those transactions. m The interleaved execution of a set of transactions is considered correct iff it is serializable. m A nonserial but serializable schedule often permits higher degree of concurrency than a serial schedule. m Different forms of schedule equivalence give rise to the notions of: q conflict serializability q view serializability m 55

 Serializability m Two schedules that are result equivalent for the initial value of

Serializability m Two schedules that are result equivalent for the initial value of X = 100, but are not result equivalent in general. 56

 Conflict Serializability m If li and lj are consecutive in a schedule and

Conflict Serializability m If li and lj are consecutive in a schedule and they do not conflict, their results would remain the same even if they had been interchanged in the schedule. m If a schedule S can be transformed into a schedule S´ by a series of swaps of non-conflicting instructions, we say that S and S´ are conflict equivalent. q Two schedules are called conflict equivalent if the order of any two conflicting operations is the same in both schedules m We say that a schedule S is conflict serializable if it is conflict equivalent to a serial schedule 57

 Example m Consider two transactions: q T 1 = R 1(X) W 1(X)

Example m Consider two transactions: q T 1 = R 1(X) W 1(X) R 1(Y) W 1(Y) q T 2 m = R 2(X) W 2(X) The following two schedules are equivalent: q S 1: R 1(X) W 1(X) R 2(X) W 2(X) R 1(Y) W 1(Y) q S 2: R 1(X) W 1(X) R 1(Y) W 1(Y) R 2(X) W 2(X) 58

 Conflict Serializability (Cont. ) m Example of a schedule that is not conflict

Conflict Serializability (Cont. ) m Example of a schedule that is not conflict serializable: T 3 T 4 read(Q) write(Q) m We are unable to swap instructions in the above schedule to obtain either the serial schedules q T 3, T 4 or T 4, T 3 59

 Conflict Serializability (Cont. ) Schedule 3 below can be transformed into Schedule 1,

Conflict Serializability (Cont. ) Schedule 3 below can be transformed into Schedule 1, a serial schedule where T 2 follows T 1, by series of swaps of non-conflicting instructions. m Therefore Schedule 3 is conflict serializable. m 60

 View Serializability m Let S and S´ be two schedules with the same

View Serializability m Let S and S´ be two schedules with the same set of transactions. S and S´ are view equivalent if the following three conditions are met: q 1. For each data item Q, if transaction Ti reads the initial value of Q in schedule S, then transaction Ti must, in schedule S´, also read the initial value of Q. q 2. For each data item Q, if transaction Ti executes read(Q) in schedule S, and that value was produced by transaction Tj (if any), then transaction Ti must, in schedule S´, also read the value of Q that was produced by transaction Tj. 61

 View Serializability q 3. For each data item Q, the transaction (if any)

View Serializability q 3. For each data item Q, the transaction (if any) that performs the final write(Q) operation in schedule S must perform the final write(Q) operation in schedule S´. m As can be seen, view equivalence is also based purely on reads and writes alone. m Conditions 1 and 2 ensure that q each transaction reads the same values in both schedules. Condition 3, coupled with conditions 1 and 2, ensures that q both schedules results in the same final state m 62

 View Serializability (Cont. ) m m A schedule S is view serializable q

View Serializability (Cont. ) m m A schedule S is view serializable q if it is view equivalent to a serial schedule. Every conflict serializable schedule is also q view serializable. Schedule 9 is view-serializable but not conflict serializable. Every view serializable schedule that is not conflict serializable has blind writes. q a write operation without having performed a read operation 63

 Testing for Serializability Consider some schedule of a set of transactions T 1,

Testing for Serializability Consider some schedule of a set of transactions T 1, T 2, . . . , Tn m Precedence graph — a direct graph where the vertices are the transactions (names). m We draw an edge from Ti to Tj if the two transaction conflict, and Ti accessed the data item on which the conflict arose earlier. m The edge may be labeled by the item that was accessed m x y 64

 Example Schedule (Schedule A) T 1 T 2 R(X) T 3 T 4

Example Schedule (Schedule A) T 1 T 2 R(X) T 3 T 4 T 5 R(Y) R(Z) R(B) R(A) T 1 R(A) R(Y) W(Y) T 2 T 5 W(Z) R(U) 65 R(Y) W(Y) TR(Z) 3 W(Z) T 4

 Test for Conflict Serializability m A schedule is conflict serializable iff its precedence

Test for Conflict Serializability m A schedule is conflict serializable iff its precedence graph is acyclic. m If the precedence graph of schedule S has no cycle, then S is equivalent to any serial schedule that can be generated by a topological sort of the precedence graph. m For example, a serializability order for schedule A would be q T 5 T 1 T 3 T 2 T 4 66

 Test Schedule Serializability m Consider the following schedule S q R 1(X) R

Test Schedule Serializability m Consider the following schedule S q R 1(X) R 2(Y) W 1(X) R 2(X) W 2(Y) W 2(X) R 3(Y) W 3(Y) R 4(X) W 4(X) T 1 T 2 T 3 T 4 m Two possible orders of topological sorting: q T 1 T 2 T 3 T 4 & T 1 T 2 T 4 T 3 q S is equivalent to both of the above two serial schedules 67

 Test for View Serializability m The precedence graph test for conflict serializability must

Test for View Serializability m The precedence graph test for conflict serializability must be modified to apply to a test for view serializability. m The problem of checking if a schedule is view serializable falls in the class of NP-complete problems. q Thus existence of an efficient algorithm is unlikely. m However practical algorithms that just check some sufficient conditions for view serializability can still be used. 68

 Other Notions of Serializability m m m Schedule 8 given below produces same

Other Notions of Serializability m m m Schedule 8 given below produces same outcome as the serial schedule T 1, T 5 , yet is not conflict equivalent or view equivalent to it. Because addition and subtraction are commutitiave (they can be applied in any order), it is possible to produce correct schedules that are not serializable. Determining such equivalence requires additional knowledge or sematics of operations other than read and write. 69

 Implementation of Isolation m Schedules must be conflict or view serializable, and recoverable,

Implementation of Isolation m Schedules must be conflict or view serializable, and recoverable, for the sake of database consistency, and preferably cascadeless. m Concurrency-control schemes tradeoff between the amount of concurrency they allow and the amount of overhead that they incur. m Some schemes allow only conflict-serializable schedules to be generated, while others allow view -serializable schedules that are not conflictserializable. 70

 Transaction Definition in SQL m Data manipulation language must include a construct for

Transaction Definition in SQL m Data manipulation language must include a construct for specifying the set of actions that comprise a transaction. m In SQL, a transaction begins implicitly. m A transaction in SQL ends by: q Commit work Ø commits current transaction and begins a new one. q Rollback work Ø causes current transaction to abort. m READ Section 17. 6 71