Transaction

44
02/23/2005 Yan Huang - CSCI5330 Database Implementation – Transaction Transaction

description

Transaction. Outline. Transaction and OLTP Desired properties of transactions Schedule Concurrent transactions and their properties. Transaction. A multi-billion dollar business OLTP http://www.tpc.org/default.asp. Transaction Definition. - PowerPoint PPT Presentation

Transcript of Transaction

Page 1: Transaction

02/23/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Transaction

Page 2: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Outline

Transaction and OLTP Desired properties of transactions Schedule Concurrent transactions and their properties

Page 3: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Transaction

A multi-billion dollar business OLTP http://www.tpc.org/default.asp

Page 4: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Transaction Definition

A unit of program execution that accesses and possibly updates various data items

Transactions? Book an airline ticket from DFW to Paris Buy “The Dilbert Principle” from amazon.com Sell 1000 shares of LU from your ameritrade account Withdraw $100 from a ATM machine Issue a SQL statement to sqlplus of Oracle 9i Look at your grade of homework 3 Check out your groceries at Walmart

Page 5: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Transaction Concept

A transaction is a unit of program execution that accesses and possibly updates various data items.

Two main issues to deal with: Failures of various kinds, such as hardware failures and

system crashes Concurrent execution of multiple transactions

a1, a2, a3, a4, …, an, commit

Database may be inconsistentconsistent consistent

c1, c2, c3, c4, …, cl, commit

b1, b2, b3, b4, …, bm, commit

a1, a2, a3, a4, …, an, commit

Page 6: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Challenges to Maintain Transactions

Hardware failures Cashed stuck in ATM machine Power failure…

Software failures Programming errors System crash…

User interference Termination of transactions

Concurrent users Multiple users accessing the same item

Page 7: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Designed Properties of Database Systems

Atomicity Consistency Isolation Durability

Page 8: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Atomicity

Transaction needs to be executed as a unit Example

You should not cause the quantity of “The Dilbert Principle” of amazon.com decrease if you place your order and the order does not get through due to server errors

Who are responsible for atomicity? Transaction management system and Recovery system

Page 9: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Example of Fund Transfer

Transaction to transfer $50 from account A to account B:

1. read(A)

2. A := A – 50

3. write(A)

4. read(B)

5. B := B + 50

6. write(B)

7. commit

Page 10: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Atomicity

Either all operations of the transaction are properly reflected

Or none are

(1) read(A), (2)A := A -50,(3)write(A), (4) read(B), (5)B := B + 50, (6)write(B), (7) commit

(1) read(A), (2)A := A -50,(3)write(A), (4) read(B), (5)B := B + 50

Page 11: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Consistency

Database implicit/explicit constraints need to be maintained

Example: Transferring money from one account to another in the same

bank should not change your total amount of money

Who are responsible for consistency? Transaction management system and Programmer

Page 12: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Consistency

A+B = TOT where TOT is a constant value

Consistency: DB satisfies all integrity and constraints Examples:

- x is key of relation R - x y holds in R - Domain(x) = {Red, Blue, Green} is valid index for attribute x of R no employee should make more than twice the average salary A+B = TOT

A+B may not equal to TOTA+B= TOT A+B= TOT

(1) read(A), (2)A := A -50,(3)write(A), (4) read(B), (5)B := B + 50, (6)write(B), (7) commit

Page 13: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Isolation

Transaction A should not see partial results of transaction B

Analogy: When I update my website here and there, you should not see

and think a tentative version as my final version

Who are responsible for isolation? Transaction management system

Page 14: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Isolation

Intermediate transaction results must be hidden from other concurrently executed transactions.

A+B may not equal to TOTA+B= TOT A+B= TOT

T2

A+B ≠ TOT?!

(1) read(A), (2)A := A -50,(3)write(A), (4) read(B), (5)B := B + 50, (6)write(B), (7) commit

Page 15: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Durability

Any transaction committed needs to be in database for ever

Example: After you get the receipt of the water melon you buy from

Alberson, the transaction is final and permanently reflected in the database system If you want to cancel it, that is another transaction

Who are responsible for durability? Transaction management system and Recovery system

Page 16: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Durability

After a transaction completes successfully, the changes it has made to the database persist, even if there are system failures.

After this point, A and B are permanently updated

(1) read(A), (2)A := A -50,(3)write(A), (4) read(B), (5)B := B + 50, (6)write(B), (7) commit

Page 17: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Transaction State (Cont.)

a1, a2, a3, a4, …, an, commit

Page 18: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

An Ideal World

No hardware failures No software failures No programming errors Do we still need transaction management?

Page 19: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Why Concurrent Transactions?

Parallelism Improved response time

Page 20: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Storage Hierarchy

Read(x) read x from memory, if it is not in memory yet, read from disk first

Write(x) writes x to memory and possibly to disk

Memory Disk

x x

1. read(A)

2. A := A – 50

3. write(A)

4. read(B)

5. B := B + 50

6. write(B)

7. commit

Page 21: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

SchedulesT1

Read(A)

A:=A-50

Write(A)

Read(B)

B:=B+50

Write(B)

T2

Read(A)

Temp:=A*0.1

A:=A-temp

Write(A)

Read(B)

B:=B+temp

Write(B)

Schedule 1

Read(A)A:=A-50Read(A)

Temp:=A*0.1A:=A-tempWrite(A)Read(B)Write(A)Read(B)B:=B+50Write(B)

B:=B+tempWrite(B)

T1 transfer $50 from A to B

T2 transfer 10% of the balance from A to B

Page 22: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Schedules

Schedules – sequences that indicate the chronological order in which instructions of concurrent transactions are executed a schedule for a set of transactions must consist of all

instructions of those transactions must preserve the order in which the instructions appear in

each individual transaction.

Page 23: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Serial Schedule

T1 is followed by T2.

A = 100, B = 100 originally

A = ? and B = ?

Schedule 2

Read(A)A:=A-50Write(A)Read(B)B:=B+50Write(B)Read(A)

Temp:=A*0.1A:=A-tempWrite(A)Read(B)

B:=B+tempWrite(B)

Page 24: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Example Schedule (Cont.)

Schedule 3 is equivalent to Schedule 1.

In both Schedule 2 and 3, the sum A + B is preserved.

A = 100, B = 100 originally

A = ? and B = ?

Schedule 3

Read(A)A:=A-50Write(A)Read(A)

Temp:=A*0.1A:=A-tempWrite(A)Read(B)B:=B+50Write(B)Read(B)

B:=B+tempWrite(B)

Page 25: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Example Schedules (Cont.)

A = 100, B = 100 originally

A = ? and B = ?

Schedule 4 does not preserve the sum A + B

Schedule 4

Read(A)A:=A-50Read(A)

Temp:=A*0.1A:=A-tempWrite(A)Read(B)Write(A)Read(B)B:=B+50Write(B)

B:=B+tempWrite(B)

Page 26: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Where is the mystery?

How to preserve database consistency?

Serializability!

Page 27: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Serializability

A (possibly concurrent) schedule is serializable if it is equivalent to a serial schedule.

Page 28: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Conflict Serializability

Transactions T1 and T2

Two operations on the same item Q,

Intuitively, a conflict between T1 and T2 forces a (logical) temporal order between T1 and T2 .

Two consecutive non-conflict operations in a schedule can been interchanged

Read(Q) Write(Q)

Read(Q)

Write(Q)

T1T2

Conflict?

Page 29: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Conflict Serializability (Cont.)

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.

Page 30: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Note

Only read and write operations will cause conflict Other operations (A:=A+10) are on local copy variables

and do not interface with database

Page 31: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Simplified SchedulesSchedule 3

Read(A)A:=A-50Write(A)Read(A)

Temp:=A*0.1A:=A-tempWrite(A)Read(B)B:=B+50Write(B)Read(B)

B:=B+tempWrite(B)

Schedule 3

Read(A)Write(A)Read(A)Write(A)Read(B)Write(B)Read(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Schedule 2

Read(A)A:=A-50Write(A)Read(B)B:=B+50Write(B)Read(A)

Temp:=A*0.1A:=A-tempWrite(A)Read(B)

B:=B+tempWrite(B)

Page 32: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Schedule 3 and Schedule 2 are conflict equivalent

Schedule 3

Read(A)Write(A)Read(A)Write(A)Read(B)Write(B)Read(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Page 33: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Schedule 3 and Schedule 2 are conflict equivalent

Schedule 3

Read(A)Write(A)Read(A)Read(B)Write(A)Write(B)Read(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Page 34: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Schedule 3 and Schedule 2 are conflict equivalent

Schedule 3

Read(A)Write(A)Read(A)Read(B)Write(B)Write(A)Read(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Page 35: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Schedule 3 and Schedule 2 are conflict equivalent

Schedule 3

Read(A)Write(A)Read(B)Read(A)Write(B)Write(A)Read(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Page 36: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Schedule 3 and Schedule 2 are conflict equivalent

Schedule 3

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Page 37: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Conflict Serializability (Cont.)

We say that a schedule S is conflict serializable if it is conflict equivalent to a serial schedule

Schedule 3 is conflict serializable

Page 38: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

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

serializable:

T3 T4

read(Q)

write(Q)write(Q)

We are unable to swap instructions in the above schedule to obtain either the serial schedule < T3, T4 >, or the serial schedule < T4, T3 >.

Page 39: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Testing for Serializability

Precedence graph — a direct graph where the vertices are the transactions (names).

Page 40: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Example Schedule (Schedule A)T1 T2 T3 T4 T5

read(X)read(Y)read(Z)

read(V)read(W)read(W)

read(Y)write(Y)

write(Z)read(U)

read(Y)write(Y)read(Z)write(Z)

read(U)write(U)

Page 41: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Precedence Graph for Schedule A

T3

T4

T1 T2

T5

Page 42: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Recoverability

Only commit after the transaction your read from commits

Page 43: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Cascadeless Schedule

Only read committed write

Page 44: Transaction

1/14/2005 Yan Huang - CSCI5330 Database Implementation – Transaction

Check SchedulesSchedule 1

Read(A)Read(A)Write(A)Read(B)Write(A)Read(B)Write(B)Write(B)

Schedule 2

Read(A)Write(A)Read(B)Write(B)Read(A)Write(A)Read(B)Write(B)

Schedule 3

Read(A)Write(A)Read(A)Write(A)Read(B)Write(B)Read(B)Write(B)

Schedule 4

Read(A)Read(A)Write(A)Read(B)Write(A)Read(B)Write(B)Write(B)

Conflict serializable?

Recoverable?

Cascadeless?