Top Banner
Transaction Processing Transaction Processing
43

Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design E/R diagrams Decomposition.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

Transaction ProcessingTransaction Processing

Page 2: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.2

General OverviewGeneral Overview

Where we ‘ve been...

DBA skills for relational DB’s:

Logical Schema Design

E/R diagrams

Decomposition and Normalization

Query languages

RA, RC, SQL

Integrity Constraints

Transaction (today)

Alternatives to relations (next week)

Where we are going

Database Implementation Issues (after midterm)

Page 3: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.3

What Does a DBMS Manage?What Does a DBMS Manage?1. Data organization

E/R Model

Relational Model

2. Data Retrieval Relational Algebra

Relational Calculus

SQL

3. Data Integrity Integrity Constraints

Transactions

Page 4: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.4

Updates in SQLUpdates in SQLAn example:

UPDATE accountSET balance = balance -50WHERE acct_no = A102

account

Dntn: A102: 300

Dntn: A15: 500

Mian: A142: 300

(1) Read

(2) update

(3) writeTransaction:

1. Read(A)2. A <- A -503. Write(A)

What takes place:

memory

Disk

Page 5: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.5

The Threat to Data IntegrityThe Threat to Data IntegrityConsistent DB

Name Acct bal-------- ------ ------Joe A-33 300Joe A-509 100

Joe’s total: 400

Consistent DB

Name Acct bal-------- ------ ------Joe A-33 250Joe A-509 150

Joe’s total: 400

transaction

Inconsistent DB

Name Acct bal-------- ------ ------Joe A-33 250Joe A-509 100

Joe’s total: 350

What a Xaction shouldlook like to Joe

What actually happensduring execution

Page 6: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.6

TransactionsTransactions

What?: Updates to db that can be executed concurrently

Why?:

(1) Updates can require multiple reads, writes on a db

e.g., transfer $50 from A-33 to A509 = read(A) A A -50 write(A) read(B) BB+50 write(B)

(2) For performance reasons, db’s permit updates to be executed concurrently

Concern: concurrent access/updates of data can compromise data integrity

Page 7: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.7

ACID PropertiesACID Properties

Atomicity: either all operations in a Xaction take effect, or none

Consistency: operations, taken together preserve db consistency

Isolation: intermediate, inconsistent states must be concealed from other Xactions

Durability. If a Xaction successfully completes (“commits”), changes made to db must persist, even if system crashes

Properties that a Xaction needs to have:

Page 8: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.8

Demonstrating ACIDDemonstrating ACIDTransaction to transfer $50 from account A to account B:

1. read(A)2. A := A – 503. write(A)4. read(B)5. B := B + 506. write(B)

Consistency: total value A+B, unchanged by Xaction

Atomicity: if Xaction fails after 3 and before 6, 3 should not affect db

Durability: once user notified of Xaction commit, updates to A,B shouldnot be undone by system failure

Isolation: other Xactions should not be able to see A, B between steps 3-6

Page 9: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.9

Threats to ACIDThreats to ACID1. Programmer Errore.g.: $50 substracted from A, $30 added to B threatens consistency

2. System Failurese.g.: crash after write(A) and before write(B) threatens atomicitye.g.: crash after write(B) threatens durability

3. ConcurrencyE.g.: concurrent Xaction reads A, B between steps 3-6

threatens isolation

Page 10: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.10

IsolationIsolationSimplest way to guarantee: forbid concurrent Xactions!

But, concurrency is desirable:

(1) Achieves better throughput (TPS: transactions per second)

one Xaction can use CPU while another is waiting for disk to service request

(2) Achieves better average response time

short Xactions don’t need to get stuck behind long ones

Prohibiting concurrency is not an option

Page 11: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.11

IsolationIsolation Approach to ensuring Isolation:

Distinguish between “good” and “bad” concurrency

Prevent all “bad” (and sometime some “good”) concurrency from happening OR

Recognize “bad” concurrency when it happens and undo its effects (abort some transactions)

Pessimistic vs Optimistic CC

Both pessimistic and optimistic approaches require distinguishing between good and bad concurrency

How: concurrency characterized in terms of possible Xaction “schedules”

Page 12: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.12

SchedulesSchedules

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

T1123

T2ABCD

T11

23

T2

AB

CD

one possible schedule:

Page 13: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.13

Example SchedulesExample Schedules

Constraint: The sum of A+B must be the same

Before: 100+50

After: 45+105

T1read(A)A <- A -50write(A)read(B)B<-B+50write(B)

T2

read(A)tmp <- A*0.1A <- A – tmpwrite(A)read(B)B <- B+ tmpwrite(B)

Transactions: T1: transfers $50 from A to B T2: transfers 10% of A to B

=150, consistent

Example 1: a “serial” schedule

Page 14: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.14

Example ScheduleExample Schedule

Another “serial” schedule:

T1

read(A)A <- A -50write(A)read(B)B<-B+50write(B)

T2read(A)tmp <- A*0.1A <- A – tmpwrite(A)read(B)B <- B+ tmpwrite(B)

Before: 100+50

After: 40+110

Consistent but not the same as previous schedule..

Either is OK!

=150, consistent

Page 15: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.15

Example Schedule (Cont.)Example Schedule (Cont.)Another “good” schedule:

T1read(A)A <- A -50write(A)

read(B)B<-B+50write(B)

T2

read(A)tmp <- A*0.1A <- A – tmpwrite(A)

read(B)B <- B+ tmpwrite(B)

Effect: Before After A 100 45 B 50 105

Same as one of the serial schedulesSerializable

Page 16: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.16

Example Schedules (Cont.)Example Schedules (Cont.) A “bad” schedule

Before: 100+50 = 150

After: 50+60 = 110 !!

Not consistent

T1read(A)A <- A -50

write(A)read(B)B<-B+50write(B)

T2

read(A)tmp <- A*0.1A <- A – tmpwrite(A)read(B)

B <- B+ tmpwrite(B)

Page 17: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.17

SerializabilitySerializabilityHow to distinguish good and bad schedules?

for previous example, any schedule leaving A+B = 150 is good

Q: could we express good schedules in terms of integrity constraints?

Ans: No. In general, won’t know A+B, can’t check value of A+B at given time

for consistency

Alternative: Serializability

Page 18: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.18

SerializabilitySerializability

All schedules

Serializable schedules

“conflict serializable” schedules

“view serializable” schedules

serial

Serializable: A schedule is serializable if its effects on the db are the equivalent to some serial schedule.

Hard to esnure; more conservative approaches are used in practice

Page 19: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.19

Conflict SerializabilityConflict SerializabilityConservative approximation of serializability

(conflict serializable => serializable but <= doesn’t hold)

Idea: can we swap the execution order of consecutive operation

wo/ affecting state of db, Xactions so as to leave a serial schedule?

Page 20: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.20

Conflict Serializability (Cont.)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.

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

Ex:

T1 ….read(A)

T2 ….

read(A) . . .

T1 ….

read(A)

T2 ….

read(A)

. . .

can be rewrittento equivalentschedule

Page 21: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.21

Conflict Serializability (Cont.)Conflict Serializability (Cont.)

T11. Read(A)2. A A -503. Write(A)

4.Read(B)5. B B + 506. Write(B)

T2

a. Read(A)b. tmp A * 0.1c. A A - tmp d.Write(A)

e. Read(B)f. B B + tmpg. Write(B)

Swaps:

4 <->d4<->c4<->b4<->a

T1, T2

Example:

5<->d5<->c5<->b5<->a

6<->d6<->c6<->b6<->a

Conflict serializble

Page 22: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.22

Conflict Serializability (Cont.)Conflict Serializability (Cont.)

T1read(A)A <- A -50write(A)read(B)B<-B+50write(B)

T2

read(A)tmp <- A*0.1A <- A – tmpwrite(A)read(B)B <- B+ tmpwrite(B)

The effects of swaps

Because example schedule couldbe swapped to this schedule (<T1, T2>)

example schedule is conflict serializable

Page 23: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.23

The swaps we madeThe swaps we madeA. Reads and writes of different data elements

e.g.: T1 T2 T1 T2 write(A) read(B) = read(B) write(A)

OK because: value of B unaffected by write of A ( read(B) has same effect ) write of A is not undone by read of B ( write(A) has same effect)

Note : T1 T2 T1 T2 write(A) read(A) = read(A) write(A)

Why? In the first, T1 reads value of A written by T2. May be different value than previous value of A

Page 24: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.24

SwapsSwaps T1 T2 T1 T2 write(A) read(A) = read(A) write(A)

What affect on state of db could above swap make?

Suppose what follows read(A) in T1 is: read(C) C C+A write(C)

Unless T2 writes the same value to A, the first schedule will leave a different value for C than the second

Page 25: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.25

The swaps We MadeThe swaps We MadeA. Reads and writes of different data elements 4 <-> d 6 <-> a

B. Reads of different data elements: 4 <-> a

C. Writes of different data elements: 6 <-> d

D. Any operation with a local operation

OK because local operations don’t go to disk. Therefore, unaffected by other operations: 4 <-> b 5 <-> a .... 4 <-> c

To simplify, local operations are ommited from schedules

Page 26: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.26

Conflict Serializability (Cont.)Conflict Serializability (Cont.)

T11. Read(A)2. Write(A)

3. Read(B)4. Write(B)

T2

a. Read(A)b. Write(A)

c. Read(B)d. Write(B)

Swaps:

3 <->b3<->a4<->b4<->a

T1, T2

Previous example wo/ local operations:

Page 27: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.27

Swappable OperationsSwappable Operations

Swappable operations:

1. Any operation on different data element

2. Reads of the same data (Read(A))

(regardless of order of reads, the same value for A is read)

Conflicts:

T1: Read (A)

T1: Write (A)

T2: Read(A) T2: Write(A)

OK R/W Conflict

W/R Conflict W/W Conflict

T1: Read(B) OK OK

T1: Write(B) OK OK

Page 28: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.28

Conflicts on same itemConflicts on same item

(1) READ/WRITE conflicts:

conflict because value read depends on whether write has occured

(2) WRITE/WRITE conflicts:

conflict because value left in db depends on which write occured last

(3) READ/READ : no conflict

Page 29: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.29

Conflict SerializabilityConflict Serializability

T1 T2

(1) read(Q)write(Q) (a)

(2) write(Q)

Q: Is the following shcedule conflict serializable? If so, what’s its equivalent serial schedule? If not, why?

Ans: No. Swapping (a) with (1) is a R/W conflict, and swapping (a) with (2)is a W/W conflict. Not equivalent to <T1, T2> or <T2, T1>

Page 30: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.30

Conflict SerializabilityConflict SerializabilityQ: Is the following shcedule conflict serializable? If so, what’s its equivalent serial schedule? If not, why?

T1

(1) Read(A)

(2) Write(C)

T2

(a) Write(A)(b) Read(B)

T3

(x) Write(B)(y) Read(S)

Ans.: Yes. Equivalent to<T1, T2, T3>

Page 31: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.31

Conflict SerializabilityConflict SerializabilityQ: Is the following shcedule conflict serializable? If so, what’s its equivalent serial schedule? If not, why?

T1

(1) Read(A)

(2) Write(S)

T2

(a) Write(A)(b) Read(B)

T3

(x) Write(B)(y) Read(S)

Ans.: NO.All possible serial schedules arenot conflict equivalent.

<T1, T2, T3><T1, T3, T2><T2, T1, T3> . . . . . .

Page 32: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.32

Conflict SerializabilityConflict Serializability

Testing: too expensive to test a schedule by swapping operations

(usually schedules are big!)

Alternative: “Precedence Graphs”

* vertices = Xactions

* edges = conflicts between Xactions

E.g.: Ti Tj if: (1) Ti, Tj have a conflicting operation, and

(2) Ti executed its operation in conflict first

Page 33: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.33

Precedence GraphPrecedence Graph

An example of a “Precedence Graph”:

T1

Read(A)

T2

Write(A)Read(B)

T3

Write(B)Read(S)

T1

T2

T3

R/W(A)

R/W(B

)

Q: When is a schedule notconflict serializable?

Page 34: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.34

Precedence GraphPrecedence Graph

Another example:

T1

Read(A)

Write(S)

T2

Write(A)Read(B)

T3

Write(B)Read(S)

T1

T2

T3

R/W(A)

R/W(B

)R/W

(S)

Not conflict serializable!!Because there is a cycle in the PG,the cycle creates contradiction

Page 35: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.35

Example Schedule (Schedule B)Example Schedule (Schedule B)T1 T2 T3 T4 T5

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

read(V)read(W)

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

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

read(U)write(U)

Page 36: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.36

Precedence Graph for Schedule APrecedence Graph for Schedule A

T3T4

T1 T2

R/W (Y)

R/W(Y)R/W(Z)

R/W(Z) , W/W(Z)

R/W(y), R/W

(Z)

Page 37: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.37

Test for Conflict SerializabilityTest for Conflict Serializability

A schedule is conflict serializable if and only if its precedence graph is acyclic.

Cycle-detection algorithms exist which take order n2 time, where n is the number of vertices in the graph. (Better algorithms take order n + e where e is the number of edges.)

If precedence graph is acyclic, the serializability order can be obtained by a topological sorting of the graph.

For example, a serializability order for Schedule A would beT5 T1 T3 T2 T4 .

Page 38: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.38

View SerializabilityView Serializability “View Equivalence”:

S and S´ are view equivalent if the following three conditions are met:

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.

2. For each data item Q, if transaction Ti reads the value of Q written by Tj in S, it also does in S’

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´.

As can be seen, view equivalence is also based purely on reads

and writes alone.

Page 39: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.39

View Serializability (Cont.)View Serializability (Cont.)

A schedule S is view serializable if it is view equivalent to a serial schedule. Example:

T1

Read(A)

Write(A)

T2

Write(A)

T3

Write(A)

Every view serializable schedule that is not conflict serializable has blind writes.

Is this scheduleview serializable?conflict serializable?

VS: Yes. Equivalent to <T1, T2, T3>

CS: No. PG has a cycle.

Page 40: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.40

View SerializabilityView Serializability(1) We just showed: conflict serializable

view serializable

(2) We can also show:view serializable

serializable

Page 41: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.41

Other Notions of SerializabilityOther Notions of SerializabilityEquivalent to the serial schedule < T1, T2 >, yet is not conflict equivalent or view equivalent to it.

T1

Read(A) A A -50 Write(A)

Read(B)B B + 50Write(B)

T2

Read(B)B B - 10Write(B)

Read(A)A A + 10Write(A)

Determining such equivalence

requires analysis of operations

other than read and write.

Page 42: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.42

Transaction Definition in SQLTransaction Definition in SQL Data manipulation language must include a construct for specifying the set

of actions that comprise a transaction. In SQL, a transaction begins implicitly. A transaction in SQL ends by:

Commit work commits current transaction and begins a new one. Rollback work causes current transaction to abort.

Levels of consistency specified by SQL-92: Serializable — default (more conservative than conflict

serializable) Repeatable read Read committed -- default for Oracle (higher throughput) Read uncommitted

Oracle Read Committed (DEFAULT) and Serializable Alter session set isolation_level = SERIALIZABLE;

Page 43: Transaction Processing. 15.2 General Overview Where we ‘ve been... DBA skills for relational DB’s: Logical Schema Design  E/R diagrams  Decomposition.

15.43

Transactions in SQLTransactions in SQL

Other systems: Serializable — default

- can read only committed records

- if T is reading or writing X, no other Xaction can change X until T commits

- if T is updating a set of records (identified by WHERE clause), no other Xaction can change this set until T commits

Weaker versions (non-serializable) levels can also be declared

Idea: tradeoff: More concurrency => more overhead to ensure

valid schedule.

Lower degrees of consistency useful for gathering approximateinformation about the database, e.g., statistics for query optimizer.