/
CIS 720 CIS 720

CIS 720 - PowerPoint Presentation

luanne-stotts
luanne-stotts . @luanne-stotts
Follow
380 views
Uploaded On 2016-09-06

CIS 720 - PPT Presentation

Concurrency Control Timestampbased concurrency control Assign a timestamp tsT to each transaction T Each data item x has two timestamps rtx timestamp of the last transaction that read x ID: 461825

commit abort cohorts decide abort commit decide cohorts message send coordinator cohort timeout vote wait waiting decision site prepare

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "CIS 720" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

CIS 720

Concurrency ControlSlide2

Timestamp-based concurrency control

Assign a timestamp ts(T) to each transaction T.

Each data item x has two timestamps:

rt(x): timestamp of the last transaction that

read x

wt(x): timestamp of the last transaction that

wrote xSlide3

If T requests r(x)

if

wt

(x) > TS(T) then abort T

else update

rt(x) = max(rt(x), TS(T)) If T request w(x) if rt(x) > TS(T) then if rt(x) < TS(T) and wt(x) > TS(T) if rt(x) < TS(T) and wt(x) < TS(T)Slide4

If T requests r(x)

if

wt

(x) > TS(T) then abort T

else update

rt(x) = max(rt(x), TS(T)) If T request w(x) if rt(x) > TS(T) then abort T if rt(x) < TS(T) and wt(x) > TS(T) then skip if rt(x) < TS(T) and wt(x) < TS(T) then wt(x)=TS(T)Slide5

Optimistic Concurrency Control

Assume that there are no conflicts

Get sequence number and access variables

At commit time, check to see if any conflicts occurred

If yes then abort else commitSlide6
Slide7

Atomicity

Ensure that a set of actions is performed atomically: all or none

Distributed transactions require the subtransactions to be atomicSlide8

Each site votes “yes” or “no”.

A decision to commit is made only if all sites vote yes. Else the decision is to abort.

If any one site commits, then eventually all sites must commit

If any one site aborts then eventually all sites must abortSlide9

A site cannot reverse its decision

If there are no failures and all sites vote to commit then the decision must be to commit

No message loss. Messages arriving at a failed site are lost. FIFO delivery

No false timeoutSlide10

Two phase commit

Coordinator:

- send prepare message to all cohorts

- wait for votes from all cohorts

- If at least one vote is no

then decide abort; send abort to all cohorts else decide commit; send commit to all cohortsSlide11

Cohort:

- wait for a prepare message

send vote to coordinator

if vote is no then decide abort

else wait for message from coordinator if message is abort then decide abort else decide commitSlide12
Slide13

Timeout events:

Cohort timeout waiting for prepare:

decide abort

Coordinator timeout waiting for a vote:

decide abort; send abort message Cohort timeout waiting for decision: contact other cohorts; If it finds a cohort that has decided then make the same decision; otherwise, it blocksSlide14
Slide15

Recovery action:

Cohort recovers:

- not yet voted then decide abort

- Not yet decided: communicate with other

cohorts; if it finds a cohort that has decided then make the same decision; Otherwise, blockSlide16

Coordinator recovers:

- If crashed before receiving all votes then decide abort; send abort messages to all cohorts

- else, complete the protocolSlide17

Three Phase Commit

Coordinator:

- send prepare message to all cohorts

- wait for votes from all cohorts

- If at least one vote is no

then decide abort; send abort to all cohorts else send precommit to all cohorts wait for ack from all cohorts decide commit send commit message to all cohortsSlide18

Cohort:

- wait for a prepare message

send vote to coordinator

if vote is no then decide abort

else wait for message from coordinator

if message is abort then decide abort else if message is precommit then send ack to coordinator wait for commit message decide commitSlide19
Slide20

Whenever at least one operational site is in its uncertain period, no other site, either operational or failed, can have decided commit.Slide21

Timeout actions

Timeout events:

Cohort timeout waiting for prepare:

decide abort

Coordinator timeout waiting for a vote:

decide abort; send abort message Coordinator timeout waiting for an ack decide commit and send commit message to all cohortsSlide22

Cohort timeout waiting for precommit or abort or commit:

contact other cohorts and elect a new coordinator. The new coordinator polls the cohorts to find their status. If any cohort has not voted or has aborted then decide abort. If any cohort has committed then decide commit. If all operational cohorts are uncertain then decide abort. Otherwise, the new coordinator executes the three phase commit protocol by sending precommit messages.

Related Contents


Next Show more