Download presentation
Presentation is loading. Please wait.
Published byVanessa Payne Modified over 9 years ago
1
LeongHW, SOC, NUS (UIT2201:3 Database) Page 1 Copyright © 2007-9 by Leong Hon Wai Database – Info Storage and Retrieval Aim: Understand basics of Info storage and Retrieval; Database Organization; DBMS, Query and Query Processing; Work some simple exercises; Concurrency Issues (in Database) Readings: [SG] --- Ch 13.3 Optional: Some experiences with MySQL, Access
2
LeongHW, SOC, NUS (UIT2201:3 Database) Page 2 Copyright © 2007-9 by Leong Hon Wai
3
LeongHW, SOC, NUS (UIT2201:3 Database) Page 3 Copyright © 2007-9 by Leong Hon Wai Concurrency Issues Concurrency When 2 processes access S at the same time! Can cause all kinds of problems Important issue in all areas Illustrate with concurrency issue in database Readings for Concurrency Issues Record Locking – Wikipedia u http://en.wikipedia.org/wiki/Record_locking Read [SG3] Section 6.4.1 (pp. 268--272) u Efficient Allocation and Safe Use of Resources
4
LeongHW, SOC, NUS (UIT2201:3 Database) Page 4 Copyright © 2007-9 by Leong Hon Wai Concurrency Issue: Example Bank account info: Withdraw-P (amt); begin check balance; bal bal - amt; end; Deposit-P (amt); begin check balance; bal bal + amt; end; Deposit and Withdrawal Processes B ANK -A CCOUNT-DB Account #NameBalanceOther Info… 2201-1022Albert Bank5000…
5
LeongHW, SOC, NUS (UIT2201:3 Database) Page 5 Copyright © 2007-9 by Leong Hon Wai Normal Operations (1/2) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Check balance [5000]5000 T W +1Bal Bal – 10004000... 4000 TDTD Check balance [4000]4000 T D +1Bal Bal + 20006000 If (T W < T D ), then Correct balance
6
LeongHW, SOC, NUS (UIT2201:3 Database) Page 6 Copyright © 2007-9 by Leong Hon Wai Normal Operations (2/2) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TDTD Check balance [5000]5000 T D +1Bal Bal + 20007000... 7000 TWTW Check balance [7000]7000 T W +1Bal Bal – 10006000 If (T W > T D ), then Correct balance
7
LeongHW, SOC, NUS (UIT2201:3 Database) Page 7 Copyright © 2007-9 by Leong Hon Wai Concurrency Issue (1/4) But… What if two processes accesses the same database record at the same time? Which process get access first? Does it matter?
8
LeongHW, SOC, NUS (UIT2201:3 Database) Page 8 Copyright © 2007-9 by Leong Hon Wai Concurrency Problem (2/4) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TDTD Check balance [5000]5000 T D +1Check balance [5000]5000 T D +2 Bal Bal + 20007000 T D +3Bal Bal – 10004000 If (T W = T D ), and Deposit-process “got in” first Wrong balance
9
LeongHW, SOC, NUS (UIT2201:3 Database) Page 9 Copyright © 2007-9 by Leong Hon Wai Concurrency Problem (2/3) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Check balance [5000]5000 T W +1 Check balance [5000]5000 T W +2Bal Bal – 10004000 T W +3Bal Bal + 20007000 If (T W = T D ), and Withdraw-process “got in” first Wrong balance
10
LeongHW, SOC, NUS (UIT2201:3 Database) Page 10 Copyright © 2007-9 by Leong Hon Wai Concurrency Problem (3/3) Operations of the two processes are interleaved Withdraw-Process and Deposit-Process “interfere” with each other Wrong balance for both cases Since one of the operations is over-written
11
LeongHW, SOC, NUS (UIT2201:3 Database) Page 11 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: Lock operation IDEA: If one process P is changing balance, make sure that other processes do not access the same balance until P is done Solution: The process that “get-in” first, locks up the record. This makes sure other processes will not be to access the same record. Unlock the record after update is done.
12
LeongHW, SOC, NUS (UIT2201:3 Database) Page 12 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: (2/4) Withdraw-P (amt); begin Get & lock record; bal bal - amt; unlock record; end; Deposit-P (amt); begin Get & lock record; bal bal + amt; unlock record; end; Deposit and Withdrawal Processes Bank-Account-DB 2201-1022 5000
13
LeongHW, SOC, NUS (UIT2201:3 Database) Page 13 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: (3/4) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Get & Lock record;5000 T W +1 Get...; [blocked]5000 T W +2Bal Bal – 1000; Unlock record; 4000 T W +3Get & Lock record;4000 T W +4Bal Bal + 2000; Unlock record; 6000 If (T W = T D ), and Withdraw-process “got in” first
14
LeongHW, SOC, NUS (UIT2201:3 Database) Page 14 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: (4/4) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Get & Lock record;5000 T W +1Get...; [blocked]5000 T W +2Bal Bal + 2000; Unlock record; 7000 T W +3Get & Lock record;7000 T W +4Bal Bal – 1000; Unlock record; 6000 If (T W = T D ), and Deposit-process “got in” first
15
LeongHW, SOC, NUS (UIT2201:3 Database) Page 15 Copyright © 2007-9 by Leong Hon Wai
16
LeongHW, SOC, NUS (UIT2201:3 Database) Page 16 Copyright © 2007-9 by Leong Hon Wai Thank you!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.