Top Banner
Databases & Consistency
41

Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

Dec 21, 2015

Download

Documents

Amice Miller
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

Databases & Consistency

Page 2: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

Database

• Relational databases : dominant information storage/retrieval system

Page 3: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

Consistency

• Consistent : no contradictions

Page 5: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

Consistency

• Inconsistent : contradictions

Page 6: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Even Worse

• Zadie transfers $200 from savings to checking

Page 16: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

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.

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.

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.

To Do List Trick

• Delete list when you are done:

Page 21: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

To Do List Trick

• A crash…

Page 22: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

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.

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.

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.

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.

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.

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.

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.

Atomicity

• Transaction must LOCK all rows it will modify before starting

Page 31: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

Atomicity

• Process A locks Marie• Process B Pedro

Page 32: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

Deadlock Busting

• Deadlock requires:– Mutual Exclusion, Hold & Wait, No Preemption

Page 34: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

Replication

• Databases must be replicated– Redundancy– Speed

• Copies mustremain consistenton the fly

Page 36: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

Prepare Then Commit Trick

• Master DB initiates transaction

Page 37: Databases & Consistency. Database Relational databases : dominant information storage/retrieval system.

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.

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.

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.

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.

Transactional Memory

• Current research area : Design regular software with transactional memory interactions