+ All Categories
Home > Documents > Introduction to Data Management CSE 344

Introduction to Data Management CSE 344

Date post: 15-Feb-2016
Category:
Upload: shaw
View: 34 times
Download: 0 times
Share this document with a friend
Description:
Introduction to Data Management CSE 344. Lecture 23: Transactions. Announcements. HW6 is due tonight Webquiz due next Monday HW7 is posted: Some Java programming required Plus connection to SQL Azure Please attend the quiz section for more info!. Outline. - PowerPoint PPT Presentation
Popular Tags:
37
Introduction to Data Management CSE 344 Lecture 23: Transactions CSE 344 - Winter 2013 1
Transcript
Page 1: Introduction to Data Management CSE 344

Introduction to Data ManagementCSE 344

Lecture 23: Transactions

CSE 344 - Winter 2013 1

Page 2: Introduction to Data Management CSE 344

Announcements

• HW6 is due tonight

• Webquiz due next Monday

• HW7 is posted:– Some Java programming required– Plus connection to SQL Azure– Please attend the quiz section for more info!

CSE 344 - Winter 2013 2

Page 3: Introduction to Data Management CSE 344

Outline

• Serial and Serializable Schedules (18.1)

• Conflict Serializability (18.2)

• Locks (18.3) [Start today and finish next time]

CSE 344 - Winter 2013 3

Page 4: Introduction to Data Management CSE 344

4

Review: Transactions• Problem: An application must perform several

writes and reads to the database, as a unit

• Solution: multiple actions of the application are bundled into one unit called Transaction

• Turing awards to database researchers– Charles Bachman 1973 for CODASYL– Edgar Codd 1981 for relational databases– Jim Gray 1998 for transactions

CSE 344 - Winter 2013

Page 5: Introduction to Data Management CSE 344

5

Transactions in Applications

BEGIN TRANSACTION

[SQL statements]

COMMIT or ROLLBACK (=ABORT)

CSE 344 - Winter 2013

Page 6: Introduction to Data Management CSE 344

6

Transaction PropertiesACID

• Atomic– State shows either all the effects of txn, or none of them

• Consistent– Txn moves from a state where integrity holds, to

another where integrity holds• Isolated

– Effect of txns is the same as txns running one after another (ie looks like batch mode)

• Durable– Once a txn has committed, its effects remain in the

database

CSE 344 - Winter 2013

Page 7: Introduction to Data Management CSE 344

Implementing ACID Properties

• Isolation:– Achieved by the concurrency control manager (or scheduler)– We will discuss this today and in the next lecture

• Atomicity– Achieved using a log and a recovery manager– Will not discuss in class (come to 444 instead)

• Durability– Implicitly achieved by writing back to disk

• Consistency– Implicitly guaranteed by A and I

CSE 344 - Winter 2013 7

Page 8: Introduction to Data Management CSE 344

Isolation: The Problem

• Multiple transactions are running concurrentlyT1, T2, …

• They read/write some common elementsA1, A2, …

• How can we prevent unwanted interference ?• The SCHEDULER is responsible for that

CSE 344 - Winter 2013 8

Page 9: Introduction to Data Management CSE 344

Schedules

CSE544 - Spring, 2012 9

A schedule is a sequence of interleaved actions from all transactions

Page 10: Introduction to Data Management CSE 344

Example

T1 T2READ(A, t) READ(A, s)t := t+100 s := s*2WRITE(A, t) WRITE(A,s)READ(B, t) READ(B,s)t := t+100 s := s*2WRITE(B,t) WRITE(B,s)

CSE 344 - Winter 2013 10

A and B are elements

in the databaset and s are variables

in tx source code

Page 11: Introduction to Data Management CSE 344

A Serial ScheduleT1 T2READ(A, t)t := t+100WRITE(A, t)READ(B, t)t := t+100WRITE(B,t)

READ(A,s)s := s*2WRITE(A,s)READ(B,s)s := s*2WRITE(B,s)

CSE 344 - Winter 2013 11

Page 12: Introduction to Data Management CSE 344

Serializable Schedule

CSE544 - Spring, 2012 12

A schedule is serializable if it is equivalent to a serial schedule

Page 13: Introduction to Data Management CSE 344

A Serializable ScheduleT1 T2READ(A, t)t := t+100WRITE(A, t)

READ(A,s)s := s*2WRITE(A,s)

READ(B, t)t := t+100WRITE(B,t)

READ(B,s)s := s*2WRITE(B,s)

Notice: This is NOT a serial schedule

CSE 344 - Winter 2013 13

Page 14: Introduction to Data Management CSE 344

A Non-Serializable ScheduleT1 T2READ(A, t)t := t+100WRITE(A, t)

READ(A,s)s := s*2WRITE(A,s)READ(B,s)s := s*2WRITE(B,s)

READ(B, t)t := t+100WRITE(B,t)

CSE 344 - Winter 2013 14

Page 15: Introduction to Data Management CSE 344

How do We Know if a Schedule is Serializable?

CSE 344 - Winter 2013 15

T1: r1(A); w1(A); r1(B); w1(B)T2: r2(A); w2(A); r2(B); w2(B)

Notation

Key Idea: Focus on conflicting operations

Page 16: Introduction to Data Management CSE 344

Conflicts

• Write-Read – WR• Read-Write – RW• Write-Write – WW

CSE544 - Spring, 2012 16

Page 17: Introduction to Data Management CSE 344

Conflict Serializability

Conflicts:

ri(X); wi(Y)Two actions by same transaction Ti:

wi(X); wj(X)Two writes by Ti, Tj to same element

wi(X); rj(X)Read/write by Ti, Tj to same elementri(X); wj(X)

CSE 344 - Winter 2013 17

Page 18: Introduction to Data Management CSE 344

Conflict Serializability• A schedule is conflict serializable if it can be

transformed into a serial schedule by a series of swappings of adjacent non-conflicting actions

CSE 344 - Winter 2013 18

Page 19: Introduction to Data Management CSE 344

Conflict Serializability

CSE 344 - Winter 2013 19

Example:

r1(A); w1(A); r1(B); w1(B); r2(A); w2(A); r2(B); w2(B)

r1(A); w1(A); r2(A); w2(A); r1(B); w1(B); r2(B); w2(B)

r1(A); w1(A); r2(A); r1(B); w2(A); w1(B); r2(B); w2(B)

r1(A); w1(A); r1(B); r2(A); w2(A); w1(B); r2(B); w2(B)

….

Page 20: Introduction to Data Management CSE 344

Testing for Conflict-Serializability

Precedence graph:• A node for each transaction Ti, • An edge from Ti to Tj whenever an action in

Ti conflicts with, and comes before an action in Tj

• The schedule is serializable iff the precedence graph is acyclic

CSE544 - Spring, 2012 20

Page 21: Introduction to Data Management CSE 344

Example 1

CSE544 - Spring, 2012 21

r2(A); r1(B); w2(A); r3(A); w1(B); w3(A); r2(B); w2(B)

1 2 3

Page 22: Introduction to Data Management CSE 344

Example 1

CSE544 - Spring, 2012 22

r2(A); r1(B); w2(A); r3(A); w1(B); w3(A); r2(B); w2(B)

1 2 3

This schedule is conflict-serializable

AB

Page 23: Introduction to Data Management CSE 344

Example 2

CSE544 - Spring, 2012 23

r2(A); r1(B); w2(A); r2(B); r3(A); w1(B); w3(A); w2(B)

1 2 3

Page 24: Introduction to Data Management CSE 344

Example 2

CSE544 - Spring, 2012 24

1 2 3

This schedule is NOT conflict-serializable

AB

B

r2(A); r1(B); w2(A); r2(B); r3(A); w1(B); w3(A); w2(B)

Page 25: Introduction to Data Management CSE 344

Scheduler

• The scheduler is the module that schedules the transaction’s actions, ensuring serializability

• How ? We discuss one technique in 344:– Locking!– Aka “pessimistic concurrency control”

CSE 344 - Winter 2013 25

Page 26: Introduction to Data Management CSE 344

Locking Scheduler

Simple idea:• Each element has a unique lock• Each transaction must first acquire the lock

before reading/writing that element• If the lock is taken by another transaction,

then wait• The transaction must release the lock(s)

CSE 344 - Winter 2013 26

Page 27: Introduction to Data Management CSE 344

Implementation inVarious DBMSs

• SQLite: one lock for entire database

• SQL Server, DB2 = one lock per record– … and index entry, etc

• Bottom line: Implementation of transactions varies between DBMSs– Read the documentation!– Some DBMSs don’t even use locking!

CSE 344 - Winter 2013 27

Page 28: Introduction to Data Management CSE 344

Let’s Study SQLite First

• SQLite is very simple• More info: http://www.sqlite.org/atomiccommit.html

CSE 344 - Winter 2013 28

Page 29: Introduction to Data Management CSE 344

SQLite

• Step 1: every transaction acquires a READ LOCK (aka "SHARED" lock)– All these transactions may read happily

• Step 2: when one transaction wants to write– Acquire a RESERVED LOCK– This lock may coexists with many READ LOCKs– Writer txn may write; others don't see updates– Reader txns continue to read– New readers accepted– No other txn is allowed a RESERVED LOCK

Page 30: Introduction to Data Management CSE 344

SQLite

• Step 3: writer transaction wants to commit– It needs exclusive lock, can’t coexists with read locks– Acquire a PENDING LOCK

• Coexists with READ LOCKs• But no new READ LOCKS are accepted now

– Wait for all read locks to be released– Acquire the EXCLUSIVE LOCK – All updates are written permanently to the database

CSE 344 - Winter 2013 30

Page 31: Introduction to Data Management CSE 344

SQLite

CSE 344 - Winter 2013 31

None READLOCK

RESERVEDLOCK

PENDINGLOCK

EXCLUSIVELOCK

commit executed

begin transaction first update no more read lockscommit requested

Page 32: Introduction to Data Management CSE 344

SQLite Demo

create table r(a int, b int);insert into r values (1,10);insert into r values (2,20);insert into r values (3,30);

CSE 344 - Winter 2013 32

Page 33: Introduction to Data Management CSE 344

Demonstrating Locking in SQLite

T1: begin transaction; select * from r; -- T1 has a READ LOCKT2: begin transaction; select * from r; -- T2 has a READ LOCK

CSE 344 - Winter 2013 33

Page 34: Introduction to Data Management CSE 344

Demonstrating Locking in SQLite

T1: update r set b=11 where a=1; -- T1 has a RESERVED LOCK

T2: update r set b=21 where a=2; -- T2 asked for a RESERVED LOCK: DENIED

CSE 344 - Winter 2013 34

Page 35: Introduction to Data Management CSE 344

Demonstrating Locking in SQLite

T3: begin transaction; select * from r; commit; -- everything works fine, could obtain READ LOCK

CSE 344 - Winter 2013 35

Page 36: Introduction to Data Management CSE 344

Demonstrating Locking in SQLite

T1: commit; -- SQL error: database is locked -- T1 asked for PENDING LOCK -- GRANTED -- T1 asked for EXCLUSIVE LOCK -- DENIED

CSE 344 - Winter 2013 36

Page 37: Introduction to Data Management CSE 344

Demonstrating Locking in SQLite

T3': begin transaction; select * from r; -- T3 asked for READ LOCK-- DENIED (due to T1)

T2: commit; -- releases the last READ LOCK

CSE 344 - Winter 2013 37


Recommended