Data Concurrency, Consistency and Integrity
-
Upload
keefe-jimenez -
Category
Documents
-
view
54 -
download
7
description
Transcript of Data Concurrency, Consistency and Integrity
![Page 1: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/1.jpg)
Giovanni Chierico | May 2012 | Дубна
Data Concurrency, Consistency and Integrity
![Page 2: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/2.jpg)
Giovanni Chierico | May 2012 | Дубна
My goals
•Managing Data• Keep it valid• Let people access it
• Start from simple models• Build more complex ones• High-Level Abstraction•Oracle implementation•No Code
2
![Page 3: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/3.jpg)
Giovanni Chierico | May 2012 | Дубна
You
• Programming• Databases• Concurrency• SQL• Oracle
3
![Page 4: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/4.jpg)
Giovanni Chierico | May 2012 | Дубна
A Simple Model
Processor
Memory
Read Write
1.Read2.Process3.Write4.Read5.Process6.Write7.…
4
![Page 5: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/5.jpg)
Giovanni Chierico | May 2012 | Дубна
Increase a counter: Single User
1
1+1 2⇒
Time2 2
2+1 3⇒
3
5
![Page 6: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/6.jpg)
Giovanni Chierico | May 2012 | Дубна
Increase a counter: Multi User
1
1+1 2⇒
Time1 2 2
1+1 2⇒
6
![Page 7: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/7.jpg)
Giovanni Chierico | May 2012 | Дубна
Increase a counter: Multi User
1
1+1 2⇒
Time1 2
1+1 2⇒
2 3 2
2+1 3⇒
7
![Page 8: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/8.jpg)
Giovanni Chierico | May 2012 | Дубна
Locking
1
1+1 2⇒
Time1 2 2
1+1 2⇒
ReadLock
WriteLock
8
![Page 9: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/9.jpg)
Giovanni Chierico | May 2012 | Дубна
Concurrency
Data Concurrency means that many users can access data at the same time
Locks limit concurrency
9
![Page 10: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/10.jpg)
Giovanni Chierico | May 2012 | Дубна
Transfer Funds: Consistency
A:100€B:100€
Transfer 50€: (100,100) (50,150)⇒
A:50€B:100€
A:50€B:150€
T:200€ T:200€T:150€
10
![Page 11: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/11.jpg)
Giovanni Chierico | May 2012 | Дубна
Transaction
A transaction comprises a unit of work treated in a coherent and reliable way independent of other transactions.
11
![Page 12: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/12.jpg)
Giovanni Chierico | May 2012 | Дубна
Transfer Funds: Failures
A:100€B:100€
Transfer 50€: (100,100) (50,150)⇒
A:50€B:100€
Anything can go wrong at any time
12
![Page 13: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/13.jpg)
Giovanni Chierico | May 2012 | Дубна
Transaction Properties
•Atomicity (all or nothing)
•Consistency (From Valid to Valid)
•Isolation (No interference)
•Durability (Changes are reliably persisted)
ACID13
![Page 14: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/14.jpg)
Giovanni Chierico | May 2012 | Дубна
Commit
1
1+1 2⇒
2
1 1 2
Transaction#1
Transaction#2
Commit
Multiple versions must be kept14
![Page 15: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/15.jpg)
Giovanni Chierico | May 2012 | Дубна
Transfer Funds: Commit
A:100€B:100€
Transfer 50€
A:50€B:100€
A:50€B:150€
T:200€ T:200€ T:200€
Commit
T#1
T#2
15
![Page 16: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/16.jpg)
Giovanni Chierico | May 2012 | Дубна
Transfer Funds: Rollback
A:100€B:100€
Transfer 50€
A:50€B:100€
A:100€B:100€
Rollback
Automatic or user initiated
16
![Page 17: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/17.jpg)
Giovanni Chierico | May 2012 | Дубна
Transaction Isolation LevelsRead Phenomena
• Dirty Reads: read uncommitted data of another transaction
• Nonrepeatable & Phantom Reads: read changes committed by another transaction
Oracle Isolation Lvl Dirty Reads Nonrep & Phantom
Read Committed NO YES
Serializable NO NO
17
![Page 18: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/18.jpg)
Giovanni Chierico | May 2012 | Дубна
Oracle Read Consistency
Statement-Level Read Consistency is always guaranteed
Session-Level Read Consistency is guaranteed in only serializable mode
18
![Page 19: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/19.jpg)
Giovanni Chierico | May 2012 | Дубна
Oracle Read Consistency
A:50€B:150€
Transfer 50€
T#1
T#2
A:100€ B:100 or 150€?
Same read 100€⇒
Multiple reads• Read committed 150€⇒• Serializable 100€⇒
Same read?
A:100€B:100€
19
![Page 20: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/20.jpg)
Giovanni Chierico | May 2012 | Дубна
Multiversion Concurrency ControlSystem Change Number (SCN): the Oracle database “clock”, incremented at every insert, update, delete.
A 1 2 14
B 1 10 11 18 19
C 1 3 5
D 1 4 9 17
E 1 8 12
F 1 6 13 16
G 1 7 15
A query made at (SCN) time T return the most recent (highest SCN) records whose SCN is less or equal to T
Read SCN = 1Read SCN = 10
Readers never block WritersWriters never block Readers
*except when they do
*
20
![Page 21: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/21.jpg)
Giovanni Chierico | May 2012 | Дубна
Updates: LocksWrite 1
1
T#1
T#2
Commit
Write 2
2
CommitWait
21
![Page 22: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/22.jpg)
Giovanni Chierico | May 2012 | Дубна
Locks: Implicit Vs Explicit
• Implicit Locks• Automatic for every operation• Locks as little as possible for highest
concurrency
• Explicit Locking• transaction-level read consistency
(repeatable reads)• Cannot afford to wait once it has started
22
![Page 23: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/23.jpg)
Giovanni Chierico | May 2012 | Дубна
Increase a Counter
1.Read
2.Compute
3.Update
4.Commit
1.Read
2.Compute
3.Update
4.Commit
Wait
1
1
2
2
1
2
2
23
![Page 24: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/24.jpg)
Giovanni Chierico | May 2012 | Дубна
Increase a Counter
1.Lock2.Read 3.Compute4.Update5.Commit
1.Lock
2.Read 3.Compute4.Update5. Commit
Wait
1
1
22
2
33
24
![Page 25: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/25.jpg)
Giovanni Chierico | May 2012 | Дубна
Optimistic Locking1. Read Value & Version
2. Compute
3. Lock
4. Check if version changed. If no (1=1) then
5. Update Value & Version
6. Commit
A|1
1. Read Value & Version
2. Compute
3. Lock4. Check version ⇒ Exception
B|2
B
A|1A|1
C
25
![Page 26: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/26.jpg)
Giovanni Chierico | May 2012 | Дубна
Deadlocks
Transaction #2
Update B
Update A
Transaction #1
Update A
Update BWait #2Wait #1
Deadlock!
Avoid by always locking in the same order.
26
![Page 27: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/27.jpg)
Giovanni Chierico | May 2012 | Дубна
Data IntegrityEnforce Business Rules
Player• have a last name• have age > 0• have a unique login name• belong to a team (reference)
27
![Page 28: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/28.jpg)
Giovanni Chierico | May 2012 | Дубна
Unique Constraint
• Insert new player with login “chierico”• Check that no other “chierico” exists• Insert new “chierico” record• Make sure no one insert it between your
“check” and your “insert” ⇒1. Lock whole table Bad for Concurrency⇒2. Check3. Insert4. Commit
DBs offer a proper “unique” constraint.
28
![Page 29: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/29.jpg)
Giovanni Chierico | May 2012 | Дубна
Lessons Learned
• Always think about how others might use the data• No “one solution fits all”• Databases offer valuable abstractions• Flexible• Safe• Declarative
• Not all databases behave the same way
29
![Page 30: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/30.jpg)
Giovanni Chierico | May 2012 | Дубна
Q&A
30
![Page 31: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/31.jpg)
Giovanni Chierico | May 2012 | Дубна
спасибо
Globe of Science and Innovation, CERN
31
![Page 32: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/32.jpg)
Giovanni Chierico | May 2012 | Дубна 32
![Page 33: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/33.jpg)
Giovanni Chierico | May 2012 | Дубна 33
![Page 34: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/34.jpg)
Giovanni Chierico | May 2012 | Дубна 34
![Page 35: Data Concurrency, Consistency and Integrity](https://reader035.fdocuments.in/reader035/viewer/2022062301/56813537550346895d9c9cd5/html5/thumbnails/35.jpg)
Giovanni Chierico | May 2012 | Дубна 35