database systems - concurrency
DESCRIPTION
Transaction management, recovery, locking, isolation levels, intent locking.TRANSCRIPT
![Page 1: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/1.jpg)
TransactionsConcurrency
Database SystemsConcurrency
H. Turgut Uyar Sule Oguducu
2002-2014
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 2: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/2.jpg)
TransactionsConcurrency
License
c© 2002-2014 T. Uyar, S. OguducuYou are free to:
Share – copy and redistribute the material in any medium or format
Adapt – remix, transform, and build upon the material
Under the following terms:
Attribution – You must give appropriate credit, provide a link to the license,and indicate if changes were made.
NonCommercial – You may not use the material for commercial purposes.
ShareAlike – If you remix, transform, or build upon the material, you mustdistribute your contributions under the same license as the original.
For more information:https://creativecommons.org/licenses/by-nc-sa/4.0/
Read the full license:
https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 3: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/3.jpg)
TransactionsConcurrency
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 4: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/4.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 5: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/5.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transactions
a group of operations may have to be carried out together
finishing some operations while failing on othersmight cause inconsistency
transaction: a logical unit of work
no guarantee that multiple operations will all be finished
at least return to the state before the changes
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 6: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/6.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transactions
a group of operations may have to be carried out together
finishing some operations while failing on othersmight cause inconsistency
transaction: a logical unit of work
no guarantee that multiple operations will all be finished
at least return to the state before the changes
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 7: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/7.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Example
transfer money from one bank account to another
UPDATE ACCOUNTS SET BALANCE = BALANCE - 100WHERE ACCOUNTID = 123
UPDATE ACCOUNTS SET BALANCE = BALANCE + 100WHERE ACCOUNTID = 456
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 8: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/8.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Properties
Atomicity: all or nothing
Consistency: move from one consistent state to another
Isolation: whether operations of an unfinished transactionaffect other transactions or not
Durability: when a transaction is finished,its changes are permanent even if there is a system failure
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 9: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/9.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Properties
Atomicity: all or nothing
Consistency: move from one consistent state to another
Isolation: whether operations of an unfinished transactionaffect other transactions or not
Durability: when a transaction is finished,its changes are permanent even if there is a system failure
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 10: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/10.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Properties
Atomicity: all or nothing
Consistency: move from one consistent state to another
Isolation: whether operations of an unfinished transactionaffect other transactions or not
Durability: when a transaction is finished,its changes are permanent even if there is a system failure
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 11: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/11.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Properties
Atomicity: all or nothing
Consistency: move from one consistent state to another
Isolation: whether operations of an unfinished transactionaffect other transactions or not
Durability: when a transaction is finished,its changes are permanent even if there is a system failure
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 12: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/12.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
SQL Transactions
starting a transaction
BEGIN [ WORK | TRANSACTION ]
finishing a transaction
COMMIT [ WORK | TRANSACTION ]
cancelling a transaction
ROLLBACK [ WORK | TRANSACTION ]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 13: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/13.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Example
BEGIN TRANSACTIONON ERROR GOTO UNDOUPDATE ACCOUNTS SET BALANCE = BALANCE - 100WHERE (ACCOUNTID = 123)
UPDATE ACCOUNTS SET BALANCE = BALANCE + 100WHERE (ACCOUNTID = 456)
COMMIT...
UNDO:ROLLBACK
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 14: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/14.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 15: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/15.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery
consider a system failure during a transaction
buffer cache has not been flushed to the disk
how to guarantee durability?
derive the data from other sources in the system
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 16: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/16.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery
consider a system failure during a transaction
buffer cache has not been flushed to the disk
how to guarantee durability?
derive the data from other sources in the system
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 17: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/17.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Log
log: values of every affected tuplebefore and after every operation
write-ahead log rule:log must be flushed before the transaction is committed
accessing records in the log is sequential by nature
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 18: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/18.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Transaction Log
log: values of every affected tuplebefore and after every operation
write-ahead log rule:log must be flushed before the transaction is committed
accessing records in the log is sequential by nature
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 19: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/19.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Checkpoints
create checkpoints at certain intervals:
flush buffer cache to the physical medium
note the checkpoint
note the continuing transactions
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 20: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/20.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Lists
after the failure: which transactions will be undone,which transactions will be made permanent?
create two lists: undo (U), redo (R)
tC : last checkpoint in the log
add the transactions which are active at tC to U
scan records from tC to end of log
add any starting transaction to Umove any finishing transaction to R
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 21: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/21.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Lists
after the failure: which transactions will be undone,which transactions will be made permanent?
create two lists: undo (U), redo (R)
tC : last checkpoint in the log
add the transactions which are active at tC to U
scan records from tC to end of log
add any starting transaction to Umove any finishing transaction to R
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 22: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/22.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Example
tC :U = [T2,T3] R = []
T4 started:U = [T2,T3,T4] R = []
T2 finished:U = [T3,T4] R = [T2]
T5 started:U = [T3,T4,T5] R = [T2]
T4 finished:U = [T3,T5] R = [T2,T4]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 23: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/23.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Example
tC :U = [T2,T3] R = []
T4 started:U = [T2,T3,T4] R = []
T2 finished:U = [T3,T4] R = [T2]
T5 started:U = [T3,T4,T5] R = [T2]
T4 finished:U = [T3,T5] R = [T2,T4]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 24: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/24.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Example
tC :U = [T2,T3] R = []
T4 started:U = [T2,T3,T4] R = []
T2 finished:U = [T3,T4] R = [T2]
T5 started:U = [T3,T4,T5] R = [T2]
T4 finished:U = [T3,T5] R = [T2,T4]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 25: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/25.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Example
tC :U = [T2,T3] R = []
T4 started:U = [T2,T3,T4] R = []
T2 finished:U = [T3,T4] R = [T2]
T5 started:U = [T3,T4,T5] R = [T2]
T4 finished:U = [T3,T5] R = [T2,T4]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 26: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/26.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Example
tC :U = [T2,T3] R = []
T4 started:U = [T2,T3,T4] R = []
T2 finished:U = [T3,T4] R = [T2]
T5 started:U = [T3,T4,T5] R = [T2]
T4 finished:U = [T3,T5] R = [T2,T4]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 27: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/27.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Example
tC :U = [T2,T3] R = []
T4 started:U = [T2,T3,T4] R = []
T2 finished:U = [T3,T4] R = [T2]
T5 started:U = [T3,T4,T5] R = [T2]
T4 finished:U = [T3,T5] R = [T2,T4]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 28: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/28.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Recovery Process
scan records backwards from end of log
undo the changes made by the transactions in U
scan records forwards
redo the changes made by the transactions in R
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 29: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/29.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 30: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/30.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Two-Phase Commit
different source managers
different undo / redo mechanisms
modifications on data on different source managers
either commit in all or rollback in all
coordinator
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 31: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/31.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Protocol
coordinator → participants:flush all data regarding the transaction
coordinator → participants:start transaction and report back the result
all participants succeeded: success
otherwise: failure
if success, coordinator → participants: commit
if failure, coordinator → participants: rollback
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 32: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/32.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Protocol
coordinator → participants:flush all data regarding the transaction
coordinator → participants:start transaction and report back the result
all participants succeeded: success
otherwise: failure
if success, coordinator → participants: commit
if failure, coordinator → participants: rollback
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 33: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/33.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
Protocol
coordinator → participants:flush all data regarding the transaction
coordinator → participants:start transaction and report back the result
all participants succeeded: success
otherwise: failure
if success, coordinator → participants: commit
if failure, coordinator → participants: rollback
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 34: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/34.jpg)
TransactionsConcurrency
IntroductionRecoveryTwo-Phase CommitReferences
References
Required Reading: Date
Chapter 15: Recovery
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 35: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/35.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 36: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/36.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Concurrency
problems that might arise due to simultaneuous transactions:
lost update
uncommitted dependency
inconsistent analysis
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 37: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/37.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p ...... ...... RETRIEVE p... ...UPDATE p ...... ...... UPDATE p... ...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 38: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/38.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p ...... ...... RETRIEVE p... ...UPDATE p ...... ...... UPDATE p... ...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 39: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/39.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p ...... ...... RETRIEVE p... ...UPDATE p ...... ...... UPDATE p... ...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 40: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/40.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p ...... ...... RETRIEVE p... ...UPDATE p ...... ...... UPDATE p... ...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 41: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/41.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p ...... ...... RETRIEVE p... ...UPDATE p ...... ...... UPDATE p... ...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 42: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/42.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p
... ...RETRIEVE p ...... ...... ROLLBACK...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 43: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/43.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p
... ...RETRIEVE p ...... ...... ROLLBACK...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 44: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/44.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p
... ...RETRIEVE p ...... ...... ROLLBACK...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 45: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/45.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p
... ...RETRIEVE p ...... ...... ROLLBACK...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 46: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/46.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
compute sum of accounts: acc1=40, acc2=50, acc3=30
Transaction A Transaction B
... ...RETRIEVE acc1 (40) ...RETRIEVE acc2 (90) ...... ...... UPDATE acc3 (30→ 20)... UPDATE acc1 (40→ 50)... COMMIT... ...RETRIEVE acc3 (110)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 47: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/47.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
compute sum of accounts: acc1=40, acc2=50, acc3=30
Transaction A Transaction B
... ...RETRIEVE acc1 (40) ...RETRIEVE acc2 (90) ...... ...... UPDATE acc3 (30→ 20)... UPDATE acc1 (40→ 50)... COMMIT... ...RETRIEVE acc3 (110)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 48: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/48.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
compute sum of accounts: acc1=40, acc2=50, acc3=30
Transaction A Transaction B
... ...RETRIEVE acc1 (40) ...RETRIEVE acc2 (90) ...... ...... UPDATE acc3 (30→ 20)... UPDATE acc1 (40→ 50)... COMMIT... ...RETRIEVE acc3 (110)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 49: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/49.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
compute sum of accounts: acc1=40, acc2=50, acc3=30
Transaction A Transaction B
... ...RETRIEVE acc1 (40) ...RETRIEVE acc2 (90) ...... ...... UPDATE acc3 (30→ 20)... UPDATE acc1 (40→ 50)... COMMIT... ...RETRIEVE acc3 (110)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 50: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/50.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
compute sum of accounts: acc1=40, acc2=50, acc3=30
Transaction A Transaction B
... ...RETRIEVE acc1 (40) ...RETRIEVE acc2 (90) ...... ...... UPDATE acc3 (30→ 20)... UPDATE acc1 (40→ 50)... COMMIT... ...RETRIEVE acc3 (110)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 51: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/51.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Conflicts
A reads, B reads: no problem
A reads, B writes: non-repeatable read (inconsistent analysis)
A writes, B reads: dirty read (uncommitted dependency)
A writes, B writes: dirty write (lost update)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 52: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/52.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 53: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/53.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Locking
let transactions lock the tuples they work on
shared lock (S)
exclusive lock (X)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 54: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/54.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lock Requests
lock type compatibility matrix
S X
- Y Y
S Y N
X N N
existing shared lock: only shared lock requests are allowed
existing exclusive lock: all lock requests are denied
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 55: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/55.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Locking Protocol
transaction requests lock depending on operation
promote a shared lock to an exclusive lock
if request denied, it starts waiting
it continues when the transaction that holds the lock releases it
starvation
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 56: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/56.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...... RETRIEVE p (S+)... ...UPDATE p (X-) ...wait ...wait UPDATE p (X-)wait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 57: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/57.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...... RETRIEVE p (S+)... ...UPDATE p (X-) ...wait ...wait UPDATE p (X-)wait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 58: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/58.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...... RETRIEVE p (S+)... ...UPDATE p (X-) ...wait ...wait UPDATE p (X-)wait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 59: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/59.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...... RETRIEVE p (S+)... ...UPDATE p (X-) ...wait ...wait UPDATE p (X-)wait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 60: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/60.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lost Update
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...... RETRIEVE p (S+)... ...UPDATE p (X-) ...wait ...wait UPDATE p (X-)wait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 61: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/61.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p (X+)
... ...RETRIEVE p (S-) ...wait ...wait ROLLBACKRETRIEVE p (S+)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 62: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/62.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p (X+)
... ...RETRIEVE p (S-) ...wait ...wait ROLLBACKRETRIEVE p (S+)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 63: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/63.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p (X+)
... ...RETRIEVE p (S-) ...wait ...wait ROLLBACKRETRIEVE p (S+)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 64: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/64.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Uncommitted Dependency
Transaction A Transaction B
... ...
... UPDATE p (X+)
... ...RETRIEVE p (S-) ...wait ...wait ROLLBACKRETRIEVE p (S+)...
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 65: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/65.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
Transaction A Transaction B
... ...RETRIEVE acc1 (S+) ...RETRIEVE acc2 (S+) ...... ...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... waitRETRIEVE acc3 (S-) waitwait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 66: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/66.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
Transaction A Transaction B
... ...RETRIEVE acc1 (S+) ...RETRIEVE acc2 (S+) ...... ...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... waitRETRIEVE acc3 (S-) waitwait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 67: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/67.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
Transaction A Transaction B
... ...RETRIEVE acc1 (S+) ...RETRIEVE acc2 (S+) ...... ...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... waitRETRIEVE acc3 (S-) waitwait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 68: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/68.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
Transaction A Transaction B
... ...RETRIEVE acc1 (S+) ...RETRIEVE acc2 (S+) ...... ...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... waitRETRIEVE acc3 (S-) waitwait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 69: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/69.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
Transaction A Transaction B
... ...RETRIEVE acc1 (S+) ...RETRIEVE acc2 (S+) ...... ...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... waitRETRIEVE acc3 (S-) waitwait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 70: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/70.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Inconsistent Analysis
Transaction A Transaction B
... ...RETRIEVE acc1 (S+) ...RETRIEVE acc2 (S+) ...... ...... UPDATE acc3 (X+)... UPDATE acc1 (X-)... waitRETRIEVE acc3 (S-) waitwait wait
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 71: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/71.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Deadlock
deadlock: transactions waiting for each other to release the locks
almost always between two transactions
detect and solve
prevent
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 72: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/72.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Solving Deadlocks
Example wait graph
choose a victim and kill it
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 73: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/73.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Preventing Deadlocks
every transaction has a starting timestamp
if A’s request conflicts with B’s lock:
wait-die: A waits if older than B, otherwise it diesA is rolled back and restarted
wound-wait: A waits if younger than B, otherwise it wounds BB is rolled back and restarted
timestamp of restarted transaction is not changed
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 74: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/74.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Preventing Deadlocks
every transaction has a starting timestamp
if A’s request conflicts with B’s lock:
wait-die: A waits if older than B, otherwise it diesA is rolled back and restarted
wound-wait: A waits if younger than B, otherwise it wounds BB is rolled back and restarted
timestamp of restarted transaction is not changed
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 75: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/75.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Preventing Deadlocks
every transaction has a starting timestamp
if A’s request conflicts with B’s lock:
wait-die: A waits if older than B, otherwise it diesA is rolled back and restarted
wound-wait: A waits if younger than B, otherwise it wounds BB is rolled back and restarted
timestamp of restarted transaction is not changed
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 76: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/76.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lock Statements
shared lock
SELECT query FOR SHARE
exclusive lock
SELECT query FOR UPDATE
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 77: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/77.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 78: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/78.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Isolation Levels
if isolation is decreased, concurrency can be increased
various isolation levels
serializable
repeatable read
read committed
read uncommitted
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 79: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/79.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Serializability
serial execution: a transaction starts only after another is finished
serializable: result of concurrent execution is alwaysthe same as one of the serial executions
Example
x = 10
transaction A: x = x + 1
transaction B: x = 2 ∗ x
first A, then B: x = 22
first B, then A: x = 21
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 80: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/80.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Serializability
serial execution: a transaction starts only after another is finished
serializable: result of concurrent execution is alwaysthe same as one of the serial executions
Example
x = 10
transaction A: x = x + 1
transaction B: x = 2 ∗ x
first A, then B: x = 22
first B, then A: x = 21
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 81: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/81.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Serializability
serial execution: a transaction starts only after another is finished
serializable: result of concurrent execution is alwaysthe same as one of the serial executions
Example
x = 10
transaction A: x = x + 1
transaction B: x = 2 ∗ x
first A, then B: x = 22
first B, then A: x = 21
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 82: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/82.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Serializability
serial execution: a transaction starts only after another is finished
serializable: result of concurrent execution is alwaysthe same as one of the serial executions
Example
x = 10
transaction A: x = x + 1
transaction B: x = 2 ∗ x
first A, then B: x = 22
first B, then A: x = 21
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 83: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/83.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Two-Phase Locking Protocol
two-phase locking:after any lock is released, no more new lock requests
expansion phase: gather locks
contraction phase: release locks
two-phase strict locking:all locks are released at the end of the transaction
If all transactions obey the two-phase locking protocol,all concurrent executions are serializable.
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 84: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/84.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Two-Phase Locking Protocol
two-phase locking:after any lock is released, no more new lock requests
expansion phase: gather locks
contraction phase: release locks
two-phase strict locking:all locks are released at the end of the transaction
If all transactions obey the two-phase locking protocol,all concurrent executions are serializable.
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 85: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/85.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Read Committed
read committed: only X locks are held until end of transaction
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...release lock ...... ...... UPDATE p (X+)... COMMITRETRIEVE p (S+)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 86: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/86.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Read Committed
read committed: only X locks are held until end of transaction
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...release lock ...... ...... UPDATE p (X+)... COMMITRETRIEVE p (S+)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 87: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/87.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Read Committed
read committed: only X locks are held until end of transaction
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...release lock ...... ...... UPDATE p (X+)... COMMITRETRIEVE p (S+)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 88: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/88.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Read Committed
read committed: only X locks are held until end of transaction
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...release lock ...... ...... UPDATE p (X+)... COMMITRETRIEVE p (S+)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 89: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/89.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Read Committed
read committed: only X locks are held until end of transaction
Transaction A Transaction B
... ...RETRIEVE p (S+) ...... ...release lock ...... ...... UPDATE p (X+)... COMMITRETRIEVE p (S+)
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 90: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/90.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Phantoms
phantom: when the query is executed again, new tuples appear
Example
A computes the average of a customer’s account balances:100+100+100
3 = 100
B creates new account (200) for the same customer
A computes again:100+100+100+200
4 = 125
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 91: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/91.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Phantoms
phantom: when the query is executed again, new tuples appear
Example
A computes the average of a customer’s account balances:100+100+100
3 = 100
B creates new account (200) for the same customer
A computes again:100+100+100+200
4 = 125
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 92: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/92.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Isolation Levels
setting an isolation level
SET TRANSACTION ISOLATION LEVEL[ SERIALIZABLE | REPEATABLE READ |READ COMMITTED | READ UNCOMMITTED ]
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 93: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/93.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Isolation Level Problems
dirty non-repeatable phantomread read
READ UNCOMMITTED Y Y Y
READ COMMITTED N Y Y
REPEATABLE READ N N Y
SERIALIZABLE N N N
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 94: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/94.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Topics
1 TransactionsIntroductionRecoveryTwo-Phase Commit
2 ConcurrencyIntroductionLockingIsolation LevelsIntent Locks
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 95: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/95.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Locking Granularity
lock relations instead of tuples
even the entire database
granularity: unit of locking
if granularity is increased, concurrency is decreased
hard to find locks on tuples→ first, get intent locks on relation variables
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 96: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/96.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Locking Granularity
lock relations instead of tuples
even the entire database
granularity: unit of locking
if granularity is increased, concurrency is decreased
hard to find locks on tuples→ first, get intent locks on relation variables
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 97: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/97.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Intent Locks
Intent Shared (IS):transaction intends to read some tuples
Intent Exclusive (IX):IS + transaction intends to write some tuples
Shared (S):concurrent readers are allowed but no concurrent writers
Shared + Intent Exclusive (SIX)
Exclusive (X):no concurrency allowed on this relation
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 98: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/98.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lock Requests
lock compatibility matrix
IS IX S SIX X
- Y Y Y Y Y
IS Y Y Y Y N
IX Y Y N N N
S Y N Y N N
SIX Y N N N N
X N N N N N
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 99: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/99.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Lock Precedence
for an S on a tuple,at least an IS on the relation
for an X on a tuple,at least an IX on the relation
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 100: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/100.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
Locking Statements
lock a table
LOCK [ TABLE ] table_name[ IN lock_mode MODE ]
lock modes:
ACCESS SHAREROW SHAREROW EXCLUSIVESHARE UPDATE EXCLUSIVESHARESHARE ROW EXCLUSIVEEXCLUSIVEACCESS EXCLUSIVE
H. Turgut Uyar, Sule Oguducu Database Systems
![Page 101: Database Systems - Concurrency](https://reader036.vdocuments.site/reader036/viewer/2022062405/55618020d8b42a98268b53b0/html5/thumbnails/101.jpg)
TransactionsConcurrency
IntroductionLockingIsolation LevelsIntent LocksReferences
References
Required Reading: Date
Chapter 16: Concurrency
H. Turgut Uyar, Sule Oguducu Database Systems