9
THREE-PHASE LOCKING (3PL) by jasim qazi [121]

THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL 2PL has performance issues when dealing with frequently-changing data in multi user

Embed Size (px)

DESCRIPTION

Problems with 2PL(UPDATE)  Cascading Rollbacks: in this case if an error occurs after the Read(A,a) operation of T1, then T1 will have to rollbackand start over. Since T2 and T3 are waiting for the result of T1, these two will also be rolled back till T1 executes correctly. T1T2T3 Lock(A) Read(A,a) Lock(B) Read(B,b) Write(A,a) Unlock(A) Lock(A) Read(A,a) Write(A,a) Unlock(A) Lock(A) Read(A,a)

Citation preview

Page 1: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

THREE-PHASE LOCKING (3PL)

by jasim qazi [121]

Page 2: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

Problems with 2PL 2PL has performance issues when

dealing with frequently-changing data in multi user environments: Deadlocks: multiple users so concurrency

a major issue. Added to the number of data access, deadlocks occur.

Page 3: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

Problems with 2PL(UPDATE) Cascading Rollbacks: in

this case if an error occurs after the Read(A,a) operation of T1, then T1 will have to rollbackand start over. Since T2 and T3 are waiting for the result of T1, these two will also be rolled back till T1 executes correctly.

T1 T2 T3Lock(A)Read(A,a)Lock(B)Read(B,b)Write(A,a)Unlock(A)

Lock(A)Read(A,a) Write(A,a)Unlock(A)

Lock(A)Read(A,a)

Page 4: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

3PL Not a necessity, not used a lot. Procedures available to solve 2PL’s

problems. Dependent on the nature of the data and the

environment: changing data, many users. Types of locks used: Read, Write, Write

Intent.

Page 5: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

Scenario User signs in and requests data from

the database. Read lock is applied to the data. Once the data is read, the Read lock is

dropped. There can be multiple Read locks by

multiple users on the same data/tuple.

Page 6: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

Scenario When the user indicates that he wishes to edit the

data, take out a WRITE-INTENT lock. UPDATE:Write Intent Lock also known as Change

Lock or Protect Lock. Other users can still obtain a Read Lock on the

data. Write Lock allowed only to the user who has the

Write Intent Lock. If data locked with Write Intent Lock, then no

further Write Intent Locks can be applied on it.

Page 7: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

Scenario When user finishes editing the data and

submits the changes, immediately Write Lock is applied on the data.

Write Intent Lock is unlocked. Transaction is committed and Write Lock

is unlocked.

Page 8: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

3PL All locks are subject to timeouts, with appropriate

actions (unlocks, error/warning messages to user etc) taken in the event of lock failure. This prevents deadlocks.

All access to the data in question should use the same locking protocol. No other protocol should be applied or considered as it may disrupt the flow of operations.

UPDATE:Only WRITE-INTENT locks can be held for any length of time, typically because the record of interest is at the mercy of the user in edit mode...

Page 9: THREE-PHASE LOCKING (3PL) by jasim qazi [121]. Problems with 2PL  2PL has performance issues when dealing with frequently-changing data in multi user

Final words… This is actually not dissimilar to the way

many "modern" relational databases handle locking,

The average RDBMS can't support the degree of control involved here

3PL developed out of need.