Distributed Databases CS347 Lecture 16 June 6 2001 1 Topics for the day Reliability Three phase commit 3PC Majority 3PC Network partitions Committing with partitions Concurrency control with partitions 2 Recall 2PC is blocking Coordinat or P1 P2 W P3 W P4 W Case I P1 W coordinator sent commits P1 C Case II P1 NOK P1 A P2 P3 P4 surviving participants cannot safely abort or commit transaction 3 3PC non blocking commit Assume failed node is down forever Key idea before committing coordinator tells participants everyone is ok I exec exec I nok go ok nok exec abort W abort A A W pre ok ack pre P P ack commit C commit Coordinat or C Participant 4 survivors 3PC recovery termination protocol Survivors try to complete transaction based on their current states Goal If dead nodes committed or aborted then survivors should not contradict Otherwise survivors can do as they please 5 Termination rules Let S1 S2 Sn be survivor sites Make decision on commit abort based on following rules If one or more Si COMMIT COMMIT T If one or more Si ABORT ABORT T If one or more Si PREPARE COMMIT T T could not have aborted If no Si PREPARE or COMMIT ABORT T T could not have committed 6 Examples P I W W W W C P P 7 Points to Note Once survivors make a decision they must elect a new coordinator and continue with 3PC W P C C W P C C P P P C Decide to commit When survivors continue 3PC failed nodes do not count Example OK OK from every non failed participant 8 Points to Note 3PC unsafe with network partitions W P W P W abort commit 9 Node recovery After node N recovers from failure what must it do N must not participate in termination protocol Wait until it hears commit abort decision from operational nodes P later on W W W A 10 All failed problem Waiting for commit abort decision is fine unless all nodes fail Two possible solutions Option A Recovering node waits for either commit abort outcome for T from some other node all nodes that participated in T are up and running Then 3PC can continue Option B Use Majority 3PC 11 Majority 3PC Nodes are assigned votes Total votes V For majority need V 1 2 votes Majority rule For every state transition coordinator requires messages from nodes with a majority of votes Majority rule ensures that any decision preparing committing is known to a future decision making 2 group 1 decision decision 1 2 1 1 2 2 2 12 Example 1 Coordinato r P 1 P 2 P 3 P 4 W W W Each node has 1 vote V 5 Nodes P2 P3 P4 enter W state and fail When they recover coordinator and P1 are down Since P2 P3 P4 have majority they know coord could not have gone to P without at least one of their votes Therefore T can be aborted 13 Example 2 Coordinato r P 1 P 2 P 3 P 4 P W Each node has 1 vote V 5 Nodes fail after entering states shown P3 and P4 recover Termination rule says P3 P4 can commit But P3 P4 do not have majority so block Right thing to do since Coordinator P1 P2 may later abort 14 Problem Previously we disallowed recovering nodes from participating Now any set of nodes with majority can progress How do we fix the problem below P W P C W W A 15 Majority 3PC Coordinator I I exec ok go exec W ok preC PC ackC commit C introduce prepare to abort state Participant nok preA PA ackA abort A W preC ackC PC exec nok preA ackA A abort PA commit C 16 Example Revisited OK to commit since transaction could not have aborted PC W PC C W W PA 17 Example Revisited II No decision Transaction could have aborted or could have committed Block PC W PA W PA W PA 18 Majority 3PC Rules If survivors have majority and states in W PC C try to commit If survivors have majority and states in W PA A try to abort Otherwise block Blocking Protocol 19 2PC Summarizing commit protocols Blocking protocol Key coordinator does not move to C state unless every participant is in W state 3PC Non blocking protocol Key coordinator broadcasts that all are ok before committing Failed nodes must wait Any set of non failed nodes can terminate transaction even a single node If all nodes fail must wait for all to recover 20 Summarizing commit protocols Majority 3PC Blocking protocol Key Every state transition requires majority of votes Any majority group of active recovered nodes can terminate transaction 21 Network partitions Groups of nodes may be isolated or may be slow in responding When are partitions of interest True network partitions disaster Single node failure cannot be distinguished from partition e g NIC fails Loosely connected networks Phone in wireless 22 Problems Partitions during commit A C A C C Updates to replicated data in isolated partitions T1 update X X X X X T2 update 23 Quorums Commit and Abort Quorums Given set S of nodes define Commit quorum C 2S Abort quorum C 2S X Y X Y such that X C and Y A Example S a b c d C a b c a b d a c d b c d A a b a c a d b c b d c d Quorums can be implemented with vote assignments 1 1 V a V b V c Vd 1 a c To commit 3 votes b d 1 To abort 2 votes 1 24 Quorums However not all quorums can be implemented with votes C a b c d A a c a d b c b d Commit protocol must enforce quorum Quorum condition is in addition to whatever rules the commit protocol might have If node knows transaction could have committed aborted if cannot abort commit even if abort commit quorum available With network partitions all commit protocols are blocking 25 3PC Example To make commit decision commit quorum votes for commit VC 3 To make abort decision abort quorum votes for abort VA 3 old 2 coordinator 1 w 1 w 1 w Old coordinator could not have committed since all other nodes are in W state Surviving nodes have abort quorum new coordinator Attemp t to abort 26 Another 3PC Example old 2 coordinator 1 P 1 w 1 w VC 3 VA 3 new coordinator Old coordinator could not have Attempt aborted since one node is in P to state commit Surviving nodes have commit quorum Note When using 3PC with quorums we must use the Prepare to Abort PA state as in majority commit for the 27 Yet Another 3PC Example old 2 coordinator 1 P 1 w 1 w VC 3 VA 3 new coordinator Old coordinator could not have aborted since one node is in P state However surviving nodes do not have commit quorum Block 28 …
View Full Document