Databases & Consistency. Database Relational databases : dominant information storage/retrieval...
-
Upload
amice-miller -
Category
Documents
-
view
231 -
download
4
Transcript of Databases & Consistency. Database Relational databases : dominant information storage/retrieval...
![Page 1: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/1.jpg)
Databases & Consistency
![Page 2: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/2.jpg)
Database
• Relational databases : dominant information storage/retrieval system
![Page 3: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/3.jpg)
Database
• Data stored in tables– Each row is a record– Columns define attributes
![Page 4: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/4.jpg)
Consistency
• Consistent : no contradictions
![Page 5: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/5.jpg)
Consistency
• Inconsistent : contradictions
![Page 6: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/6.jpg)
How Do we Become Inconsistent?
• Only one row can be saved at a time…
![Page 7: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/7.jpg)
How Do we Become Inconsistent?
• Only one row can be saved at a time…
![Page 8: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/8.jpg)
How Do we Become Inconsistent?
• Only one row can be saved at a time…
CRASH!!!!
![Page 9: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/9.jpg)
How Do we Become Inconsistent?
• Two programs interact– Program 1:
Make Rosina & Jingyi friends– Program 2:
Make Matt & Jingi friends
![Page 10: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/10.jpg)
How Do we Become Inconsistent?
• Two programs interact– Program 1:
Make Rosina & Jingyi friends• Make Rosina friend Jingyi
– Program 2:Make Matt & Jingi friends
![Page 11: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/11.jpg)
How Do we Become Inconsistent?
• Two programs interact– Program 1:
Make Rosina & Jingyi friends• Make Rosina friend Jingyi
– Program 2:Make Matt & Jingi friends• Make Rosina friend Jingyi
![Page 12: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/12.jpg)
How Do we Become Inconsistent?
• Two programs interact– Program 1:
Make Rosina & Jingyi friends• Make Rosina friend Jingyi• Check who Jingyi is friends with
none
– Program 2:Make Matt & Jingi friends• Make Rosina friend Jingyi• Check who Jingyi is friends with
none
![Page 13: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/13.jpg)
How Do we Become Inconsistent?
• Two programs interact– Program 1:
Make Rosina & Jingyi friends• Make Rosina friend Jingyi• Check who Jingyi is friends with
none• Set Jingyi friend to none + Rosina
– Program 2:Make Matt & Jingi friends• Make Rosina friend Jingyi• Check who Jingyi is friends with
none
![Page 14: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/14.jpg)
How Do we Become Inconsistent?• Two programs interact– Program 1:
Make Rosina & Jingyi friends• Make Rosina friend Jingyi• Check who Jingyi is friends with
none• Set Jingyi friend to none + Rosina
– Program 2:Make Matt & Jingi friends• Make Rosina friend Jingyi• Check who Jingyi is friends with
none• Set Jingyi friend to none + Matt
![Page 15: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/15.jpg)
Even Worse
• Zadie transfers $200 from savings to checking
![Page 16: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/16.jpg)
Even Worse
• Zadie transfers $200 from savings to checking– Look at checking… decide it should be $600– Look at savings… decide it should be $500– Write change to checking– BOOM
![Page 17: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/17.jpg)
To Do List Trick
• Make a list of what you intend to do and save it:
![Page 18: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/18.jpg)
To Do List Trick
• Make a list of what you intend to do and save it:
![Page 19: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/19.jpg)
To Do List Trick
• Make a list of what you intend to do and save it:
![Page 20: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/20.jpg)
To Do List Trick
• Delete list when you are done:
![Page 21: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/21.jpg)
To Do List Trick
• A crash…
![Page 22: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/22.jpg)
Idempotent
• Idempotent action : same effect no matter how many times you execute it– "Change checking balance to $600"
• Non-idempotent– "Subtract $200 from checking"
![Page 23: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/23.jpg)
To Do List
• If every instruction is:– Idempotent– Reversible : Know how to restore original state
Can resume or reverse any partial transaction
![Page 24: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/24.jpg)
OK smart guy…• Zadie sends $200 to Pedro
– Begin transaction– Change Zadie checking
from $600 to $400– Change Pedro checking
from $150 to $350– End transaction
• Pedro withdraws $100– Begin transaction– Change Pedro checking
from $150 to $50– Spit out money– End transaction
![Page 25: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/25.jpg)
OK smart guy…• Zadie sends $200 to Pedro
– Begin transaction– Change Zadie checking
from $600 to $400– Change Pedro checking
from $150 to $350– End transaction
• Pedro withdraws $100– Begin transaction– Change Pedro checking
from $150 to $50– Spit out money– End transaction
$400
$350
![Page 26: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/26.jpg)
OK smart guy…• Zadie sends $200 to Pedro
– Begin transaction– Change Zadie checking
from $600 to $400– Change Pedro checking
from $150 to $350– End transaction
• Pedro withdraws $100– Begin transaction– Change Pedro checking
from $150 to $50– Spit out money– End transaction
$400
$50
Pedro got cheated!!!
![Page 27: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/27.jpg)
OK smart guy…• Zadie sends $200 to Pedro
– Begin transaction– Change Zadie checking
from $600 to $400– Change Pedro checking
from $150 to $350– End transaction
• Pedro withdraws $100– Begin transaction– Change Pedro checking
from $150 to $50– Spit out money– End transaction
$50
![Page 28: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/28.jpg)
OK smart guy…• Zadie sends $200 to Pedro
– Begin transaction– Change Zadie checking
from $600 to $400– Change Pedro checking
from $150 to $350– End transaction
• Pedro withdraws $100– Begin transaction– Change Pedro checking
from $150 to $50– Spit out money– End transaction
$400
$350
Pedro got $100 free!!!
![Page 29: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/29.jpg)
Atomicity
• Atomic operation : indivisible / one unit– Never see results of half done transaction
![Page 30: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/30.jpg)
Atomicity
• Transaction must LOCK all rows it will modify before starting
![Page 31: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/31.jpg)
Atomicity
• Process A locks Marie• Process B Pedro
![Page 32: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/32.jpg)
Atomicity
• Process A locks Marie… now needs Pedro• Process B Pedro… now needs Marie
![Page 33: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/33.jpg)
Deadlock Busting
• Deadlock requires:– Mutual Exclusion, Hold & Wait, No Preemption
![Page 34: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/34.jpg)
Deadlock Busting
• Deadlock requires:– Mutual Exclusion, Hold & Wait, No Preemption
• Database can preempt:– Roll back one transaction– Give up its locks– Make it restart AFTER other is complete
![Page 35: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/35.jpg)
Replication
• Databases must be replicated– Redundancy– Speed
• Copies mustremain consistenton the fly
![Page 36: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/36.jpg)
Prepare Then Commit Trick
• Master DB initiates transaction
![Page 37: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/37.jpg)
Prepare Then Commit Trick
• Master DB initiates transaction
• Asks each other DB to do same… waits for OKPrepare
![Page 38: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/38.jpg)
Prepare Then Commit Trick
• Master DB initiates transaction
• Asks each other DB to do same… waits for OKPrepare
• Once everyone complete, sends signal to end transactionCommit
![Page 39: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/39.jpg)
Prepare Then Commit Trick
• Master DB initiates transaction
• Asks each other DB to do same… waits for OKERROR
![Page 40: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/40.jpg)
Prepare Then Commit Trick
• Master DB initiates transaction
• Asks each other DB to do same… waits for OKERROR
• Rollback instead of committing
![Page 41: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.](https://reader030.fdocuments.in/reader030/viewer/2022032704/56649d6f5503460f94a506ec/html5/thumbnails/41.jpg)
Transactional Memory
• Current research area : Design regular software with transactional memory interactions