module 8 - fault tolerance · 2015-01-01 · cs454/654 – distributed systems fault tolerance 1...

26
CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 Reliability A measure of success with which a system conforms to some authoritative specification of its behavior. Probability that the system has not experienced any failures within a given time period. Typically used to describe systems that cannot be repaired or where the continuous operation of the system is critical. Availability The fraction of the time that a system meets its specification. The probability that the system is operational at a given time t. Safety When the system temporarily fails to conform to its specification, nothing catastrophic occurs. Maintainability Measure of how easy it is to repair a system. Dependability

Upload: others

Post on 28-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

1

Module 8 - Fault Tolerance

CS454/654 8-2

ReliabilityA measure of success with which a system conforms to some authoritative specification of its behavior.Probability that the system has not experienced any failures within a given time period.Typically used to describe systems that cannot be repaired or where the continuous operation of the system is critical.

AvailabilityThe fraction of the time that a system meets its specification.The probability that the system is operational at a given time t.

SafetyWhen the system temporarily fails to conform to its specification, nothing catastrophic occurs.

MaintainabilityMeasure of how easy it is to repair a system.

Dependability

Page 2: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

2

CS454/654 8-3

External state

Internal state

Component 2

ENVIRONMENT

SYSTEM

Stimuli Responses

Component 1

Component 3

Basic System Concepts

CS454/654 8-4

Failure The deviation of a system from the behavior that is described in its specification.

Erroneous stateThe internal state of a system such that there exist circumstances in which further processing, by the normal algorithms of the system, will lead to a failure which is not attributed to a subsequent fault.

ErrorThe part of the state which is incorrect.

FaultAn error in the internal states of the components of a system or in the design of a system.

Fundamental Definitions

Page 3: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

3

CS454/654 8-5

Faults to Failures

Fault Error Failurecauses results in

CS454/654 8-6

Hard faultsPermanent

Resulting failures are called hard failures

Soft faultsTransient or intermittent

Account for more than 90% of all failures

Resulting failures are called soft failures

Types of Faults

Page 4: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

4

CS454/654 8-7

Fault ClassificationPermanent

fault

Incorrectdesign

Unstableenvironment

Operatormistake

Transienterror

SystemFailure

Unstable or marginal

components

Intermittenterror

Permanenterror

CS454/654 8-8

Failures

Faultoccurs

Errorcaused

Detectionof error

Repair Faultoccurs

Errorcaused

MTBF

MTTRMTTD

Multiple errors can occurduring this period

Time

Page 5: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

5

CS454/654 8-9

Reliability

R(t) = Pr{0 failures in time [0,t] | no failures at t=0}If occurrence of failures is Poisson

R(t) = Pr{0 failures in time [0,t]}Then

where m(t) is known as the hazard function which gives the time-dependent failure rate of the component and is defined as

Fault Tolerance Measures

Pr(k failures in time [0,t]) = k!

e-m(t)[m(t)]k

m(t) = z(x)dx0

t

CS454/654 8-10

ReliabilityThe mean number of failures in time [0, t] can be computed as

and the variance can be be computed asVar[k] = E[k2] - (E[k])2 = m(t)

Thus, reliability of a single component isR(t) = e-m(t)

and of a system consisting of n non-redundant components as

Fault-Tolerance Measures

k =0E [k] =∑

k k!e-m(t )[m(t )]k

= m(t )

Rsys(t) =∏i =1

nRi(t)

Page 6: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

6

CS454/654 8-11

AvailabilityA(t) = Pr{system is operational at time t}

Assume

Poisson failures with rate λ

Repair time is exponentially distributed with mean 1/µ

Then, steady-state availability

Fault-Tolerance Measures

A = lim A(t) =t → ∞

µλ + µ

CS454/654 8-12

MTBFMean time between failures

MTBF = ∫0

∞R(t)dt

MTTRMean time to repair

AvailabilityMTBF

MTBF + MTTR

Fault-Tolerance Measures

Page 7: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

7

CS454/654 8-13

S. Mourad and D. Andrews, “The Reliability of the IBM/XA Operating System”, Proc. 15th Annual Int. Symp. on FTCS, 1985.

Sources of Failure

Hardware57%

Software13%

Operations13%

Environment17%

Comm. Lines12%

Application SW25%

Operations10%

Vendor42%

Environment11%

“Survey on Computer Security”, Japan Info. Dev. Corp.,1986.

CS454/654 8-14

D.A. Yaeger. 5ESS Switch Performance Metrics. Proc. Int. Conf. on Communications, Volume 1, pp. 46-52, June 1987.

Operations18% Unknown

6%

Hardware32%

Software44%

Sources of Failure (2)

Operations17%

Maintenance25%

Environment14% Software

26%

Hardware18%

Jim Gray, Why Do Computers Stop and What can be Done About It?, Proc. 5th Int. Symp. On Reliability in Distributed Systems and Databases, pp. 3-15, 1985.

Page 8: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

8

CS454/654 8-15

Failure Models

A server may produce arbitrary responses at arbitrary timesArbitrary failure

The server's response is incorrectThe value of the response is wrongThe server deviates from the correct flow of control

Response failureValue failureState transition failure

A server's response lies outside the specified time intervalTiming failure

A server fails to respond to incoming requestsA server fails to receive incoming messagesA server fails to send messages

Omission failureReceive omissionSend omission

A server halts, but is working correctly until it haltsCrash failure

DescriptionType of failure

From Tanenbaum and van Steen, Distributed Systems: Principles and Paradigms© Prentice-Hall, Inc. 2002

CS454/654 8-16

How to Improve DependabilityMask failures by redundancy

Information redundancyE.g., add extra bits to detect and recovered data transmission errors

Time redundancyTransactions; e.g., when a transaction aborts re-execute it without adverse effects.

Physical redundancyHardware redundancy

– Take a distributed system with 4 file servers, each with a 0.95 chance of being up at any instant

– The probability of all 4 being down simultaneously is 0.054 = 0.000006– So the probability of at least one being available (i.e., the reliability of the full system) is

0.999994, far better than 0.95– If there are 2 servers, then the reliability of the system is (1-0.052) = 0.9975

Software redundancy– Process redundancy with similar considerations

A design that does not require simultaneous functioning of a substantial number of critical components.

Page 9: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

9

CS454/654 8-17

Hardware RedundancyTwo computers are employed for a single application, one acting as a standby

Very costly, but often very effective solution

Redundancy can be planned at a finer grainIndividual servers can be replicatedRedundant hardware can be used for non-critical activities when no faults are presentRedundant routes in network

CS454/654 8-18

Process RedundancyProcess groups

All members of a group receive a message sent to the group.If one process fails, others can take over.Can be dynamic; processes can have multiple memberships.Flat versus hierarchical groups:

From Tanenbaum and van Steen, Distributed Systems: Principles and Paradigms© Prentice-Hall, Inc. 2002

Page 10: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

10

CS454/654 8-19

Management of Replicated Processes

Primary copyPrimary-backup setupCoordinator is the primary that coordinates all updatesIf coordinator fails, one backup takes over (usually through an election procedure)Processes are organized hierarchically

Replicated-writesActive replication and quorum-based protocolsFlat group organizationNo single points of failure

CS454/654 8-20

Fault Tolerance of Process GroupsA system is k fault tolerant if it can survive faults in kcomponents and still meets its specification.If failures are safe (silent), then k+1 processes are sufficient to get k fault tolerance.In case of arbitrary failures, 2k+1 processes are required (since k failing processes can all generate the same result by chance)

This assumes that each process reaches its decision independentlyWhat if processes gang up to produce wrong results? General problem is having a process group reach an agreement.

In this case you need 2k+1 correctly functioning processes, for a total of 3k+1 processes.

In both cases we assume that communication failures do not occur.

Page 11: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

11

CS454/654 8-21

Communication FailuresPoint-to-point communication

TPC protocol masks the failures by acknowledgement and retransmission

RPC and RMI semantics in the presence of failuresWe studies these under the respective topicsSee slides 3-13 to 3-19 for RPCSee slides 3-39 to 3-41 for RMI

CS454/654 8-22

Transactional DependabilityProblem: How to maintain

atomicitydurability

properties of transactionsFocus is on data: Failures that affect ACID properties of data

Transaction failuresTransaction aborts (unilaterally or due to deadlock)Avg. 3% of transactions abort abnormally

System (site) failuresFailure of processor, main memory, power supply, …Main memory contents are lost, but secondary storage contents are safePartial vs. total failure

Media failuresFailure of secondary storage devices such that the stored data is lostHead crash/controller failure (?)

Communication failuresLost/undeliverable messagesNetwork partitioning

Page 12: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

12

CS454/654 8-23

Distributed Reliability ProtocolsCommit protocols

How to execute commit command for distributed transactions.Issue: how to ensure atomicity and durability?

A transaction that executes at different sites has to complete (i.e., abort or commit) the same way everywhere

Termination protocolsIf a failure occurs, how can the remaining operational sites deal with it.Non-blocking : the occurrence of failures should not force the sites to wait until the failure is repaired to terminate the transaction.

Recovery protocolsWhen a failure occurs, how do the sites where the failure occurred deal with it.Independent : a failed site can determine the outcome of a transaction without having to obtain remote information.

Independent recovery ⇒ non-blocking termination

CS454/654 8-24

Two-Phase Commit (2PC)Phase 1: The coordinator gets the participants ready to

commit their writesPhase 2: Everybody commits

Coordinator :The process at the site where the transaction originates and which controls the executionParticipant :The process at the other sites that participate in executing the transaction

Global Commit Rule:The coordinator aborts a transaction if and only if at least oneparticipant votes to abort it.The coordinator commits a transaction if and only if all of the participants vote to commit it.

Page 13: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

13

CS454/654 8-25

Centralized 2PC

ready? yes/no commit/abort? commited/aborted

Phase 1 Phase 2

C C C

P

P

P

P

P

P

P

P

CS454/654 8-26

2PC Protocol ActionsParticipant Coordinator

No

Yes

VOTE-COMMIT

Yes GLOBAL-ABORT

No

write abortin log

Abort

CommitACK

ACK

INITIAL

write abortin log

write readyin log

write commitin log

Type ofmsg

WAIT

Ready toCommit?

write commitin log

Any No? write abortin log

ABORTCOMMIT

COMMITABORT

writebegin_commit

in log

writeend_of_transaction

in log

READY

INITIAL

PREPARE

VOTE-ABORT

VOTE-COMMIT

Page 14: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

14

CS454/654 8-27

Distributed 2PC

preparevote-abort/

vote-commit

global-commit/global-abort

decision madeindependently

Phase 1

Coordinator Participants Participants

CS454/654 8-28

State Transitions in 2PCINITIAL

WAIT

Commit commandPrepare

Vote-commit (all)Global-commit

INITIAL

READY

Prepare Vote-commit

Global-commitAck

Prepare Vote-abort

Global-abortAck

Coordinator Participants

Vote-abort Global-abort

ABORT COMMIT COMMITABORT

Page 15: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

15

CS454/654 8-29

Site Failures - 2PC Termination

Timeout in INITIALWho cares

Timeout in WAITCannot unilaterally commitCan unilaterally abort

Timeout in ABORT or COMMITStay blocked and wait for the acks

COORDINATOR

INITIAL

WAIT

Commit commandPrepare

Vote-commit Global-commit

ABORT COMMIT

Vote-abort Global-abort

CS454/654 8-30

Timeout in INITIALCoordinator must have failed in INITIAL stateUnilaterally abort

Timeout in READYStay blocked

Site Failures - 2PC Termination

INITIAL

READY

Prepare Vote-commit

Global-commitAck

Prepare Vote-abort

Global-abortAck

ABORT COMMIT

PARTICIPANTS

Page 16: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

16

CS454/654 8-31

Site Failures - 2PC Recovery

Failure in INITIALStart the commit process upon recovery

Failure in WAITRestart the commit process upon recovery

Failure in ABORT or COMMITNothing special if all the acks have been receivedOtherwise the termination protocol is involved

COORDINATOR

INITIAL

WAIT

Commit commandPrepare

Vote-commit Global-commit

ABORT COMMIT

Vote-abort Global-abort

CS454/654 8-32

Failure in INITIALUnilaterally abort upon recovery

Failure in READYThe coordinator has been informed about the local decisionTreat as timeout in READY state and invoke the termination protocol

Failure in ABORT or COMMITNothing special needs to be done

INITIAL

READY

Prepare Vote-commit

Global-commitAck

Prepare Vote-abort

Global-abortAck

ABORT COMMIT

PARTICIPANTS

Site Failures - 2PC Recovery

Page 17: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

17

CS454/654 8-33

2PC Recovery Protocols –Additional Cases

Arise due to non-atomicity of log and message send actionsCoordinator site fails after writing “begin_commit” log and before sending “prepare” command

treat it as a failure in WAIT state; send “prepare” command

Participant site fails after writing “ready” record in log but before “vote-commit” is sent

treat it as failure in READY statealternatively, can send “vote-commit” upon recovery

Participant site fails after writing “abort” record in log but before “vote-abort” is sent

no need to do anything upon recovery

CS454/654 8-34

2PC Recovery Protocols –Additional Case

Coordinator site fails after logging its final decision record but before sending its decision to the participants

coordinator treats it as a failure in COMMIT or ABORT stateparticipants treat it as timeout in the READY state

Participant site fails after writing “abort” or “commit” record in log but before acknowledgement is sent

participant treats it as failure in COMMIT or ABORT statecoordinator will handle it by timeout in COMMIT or ABORT state

Page 18: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

18

CS454/654 8-35

Problem With 2PCBlocking

Ready implies that the participant waits for the coordinator If coordinator fails, site is blocked until recoveryBlocking reduces availability

Independent recovery is not possibleHowever, it is known that:

Independent recovery protocols exist only for single site failures; no independent recovery protocol exists which is resilient to multiple-site failures.

So we search for these protocols – 3PC

CS454/654 8-36

Three-Phase Commit3PC is non-blocking.A commit protocols is non-blocking iff

it is synchronous within one state transition, andits state transition diagram contains

no state which is “adjacent” to both a commit and an abort state, andno non-committable state which is “adjacent” to a commit state

Adjacent: possible to go from one stat to another with a single state transitionCommittable: all sites have voted to commit a transaction

e.g.: COMMIT state

Page 19: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

19

CS454/654 8-37

State Transitions in 3PCINITIAL

WAIT

Commit commandPrepare

Vote-commit Prepare-to-commit

Coordinator

Vote-abort Global-abort

ABORT

COMMIT

PRE-COMMIT

Ready-to-commit Global commit

INITIAL

READY

Prepare Vote-commit

Prepared-to-commitReady-to-commit

Prepare Vote-abort

Global-abortAck

Participants

COMMIT

ABORT PRE-COMMIT

Global commit Ack

CS454/654 8-38

Communication Structure

C

P

P

P

P

C

P

P

P

P

C

ready? yes/nopre-commit/pre-abort? commit/abort

Phase 1 Phase 2

P

P

P

P

C

yes/no ack

Phase 3

Page 20: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

20

CS454/654 8-39

Timeout in WAITUnilaterally abort

Timeout in PRECOMMITParticipants may not be in PRE-COMMIT, but at least in READYMove all the participants to PRECOMMIT stateTerminate by globally committing

Site Failures – 3PC TerminationINITIAL

WAIT

Commit commandPrepare

Vote-commit Prepare-to-commit

Coordinator

Vote-abort Global-abort

ABORT

COMMIT

PRE-COMMIT

Ready-to-commit Global commit

CS454/654 8-40

Timeout in ABORT or COMMIT

Just ignore and treat the transaction as completedparticipants are either in PRECOMMIT or READY state and can follow their termination protocols

Site Failures – 3PC TerminationINITIAL

WAIT

Commit commandPrepare

Vote-commit Prepare-to-commit

Coordinator

Vote-abort Global-abort

ABORT

COMMIT

PRE-COMMIT

Ready-to-commit Global commit

Page 21: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

21

CS454/654 8-41

Timeout in INITIALCoordinator must have failed in INITIAL stateUnilaterally abort

Timeout in READYVoted to commit, but does not know the coordinator's decisionElect a new coordinator and terminate using a special protocol

Timeout in PRECOMMITHandle it the same as timeout in READY state

INITIAL

READY

Prepare Vote-commit

Prepared-to-commitReady-to-commit

Prepare Vote-abort

Global-abortAck

Participants

COMMIT

ABORT PRE-COMMIT

Global commit Ack

Site Failures – 3PC Termination

CS454/654 8-42

New coordinator can be in one of four states: WAIT, PRECOMMIT, COMMIT, ABORT

Coordinator sends its state to all of the participants asking them to assume its state.Participants “back-up” and reply with appriate messages, except those in ABORT and COMMIT states. Those in these states respond with “Ack”but stay in their states.Coordinator guides the participants towards termination:

If the new coordinator is in the WAIT state, participants can be in INITIAL, READY, ABORT or PRECOMMIT states. New coordinator globally aborts the transaction.If the new coordinator is in the PRECOMMIT state, the participants can be in READY, PRECOMMIT or COMMIT states. The new coordinator will globally commit the transaction.If the new coordinator is in the ABORT or COMMIT states, at the end of the first phase, the participants will have moved to that state as well.

Termination Protocol Upon Coordinator Election

Page 22: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

22

CS454/654 8-43

Failure in WAIT the participants may have elected a new coordinator and terminated the transactionthe new coordinator could be in WAIT or ABORT states transaction abortedask around for the fate of the transaction

Failure in PRECOMMITask around for the fate of the transaction

INITIAL

WAIT

Commit commandPrepare

Vote-commit Prepare-to-commit

Coordinator

Vote-abort Global-abort

ABORT

COMMIT

PRE-COMMIT

Ready-to-commit Global commit

Site Failures – 3PC Recovery

CS454/654 8-44

Failure in COMMIT or ABORT Nothing special if all the acknowledgements have been received; otherwise the termination protocol is involved

INITIAL

WAIT

Commit commandPrepare

Vote-commit Prepare-to-commit

Coordinator

Vote-abort Global-abort

ABORT

COMMIT

PRE-COMMIT

Ready-to-commit Global commit

Site Failures – 3PC Recovery

Page 23: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

23

CS454/654 8-45

Failure in INITIAL unilaterally abort upon recovery

Failure in READY the coordinator has been informed about the local decisionupon recovery, ask around

Failure in PRECOMMITask around to determine how the other participants have terminated the transaction

Failure in COMMIT or ABORT

no need to do anything

INITIAL

READY

Prepare Vote-commit

Prepared-to-commitReady-to-commit

Prepare Vote-abort

Global-abortAck

Participants

COMMIT

ABORT PRE-COMMIT

Global commit Ack

Site Failures – 3PC Recovery

CS454/654 8-46

Simple partitioningOnly two partitions

Multiple partitioningMore than two partitions

Formal bounds (due to Skeen):There exists no non-blocking protocol that is resilient to a network partition if messages are lost when partition occurs.There exist non-blocking protocols which are resilient to a single network partition if all undeliverable messages are returned to sender.There exists no non-blocking protocol which is resilient to a multiple partition.

Network Partitioning

Page 24: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

24

CS454/654 8-47

Independent Recovery in the case of Network Partitioning

No general solution possible allow one group to terminate while the other is blocked improve availability

How to determine which group to proceed?The group with a majority

How does a group know if it has majority?centralized

whichever partitions contains the central site should terminate the transaction

voting-based (quorum)different for replicated vs non-replicated databases

CS454/654 8-48

Quorum Protocols for Network Partitioning

The network partitioning problem is handled by the commit protocol.Every site is assigned a vote Vi.Total number of votes in the system VAbort quorum Va, commit quorum Vc

Va + Vc > V where 0 ≤ Va, Vc ≤ VBefore a transaction commits, it must obtain a commit quorum Vc

Before a transaction aborts, it must obtain an abort quorum Va

Page 25: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

25

CS454/654 8-49

State Transitions in Quorum Protocols

INITIAL

WAIT

Commit commandPrepare

Vote-commit Prepare-to-commit

Coordinator

Vote-abort Prepare-to-abort

ABORT COMMIT

PRE-COMMIT

Ready-to-commit Global commit

INITIAL

READY

Prepare Vote-commit

Prepare-to-commitReady-to-commit

Prepare Vote-abort

Global-abortAck

Participants

COMMITABORT

PRE-COMMIT

Global commit Ack

PRE-ABORT

Prepared-to-aborttReady-to-abort

PRE-ABORT

Ready-to-abort Global-abort

CS454/654 8-50

Network Partitioning & ReplicationA group of replica managers are partitioned into two or more subgroups such that members of one subgroup can communicate with each other but members of different subgroups cannot communicate with one another.

Client + front end

B

withdraw(B, 4)

Client + front end

Replica managers

deposit(B,3);

UTNetworkpartition

B

B B

From Coulouris, Dollimore and Kindberg, Distributed Systems: Concepts and Design, 3rd ed. © Addison-Wesley Publishers 2000

Page 26: Module 8 - Fault Tolerance · 2015-01-01 · CS454/654 – Distributed Systems Fault Tolerance 1 Module 8 - Fault Tolerance CS454/654 8-2 QReliability OA measure of success with which

CS454/654 – Distributed Systems Fault Tolerance

26

CS454/654 8-51

Replica Management with Network Partitioning

Optimistic approachAvailable copies with validation

Let each partition perform updates freelyValidate when partition is repaired and those that violate one-copy serializability are aborted.

PessimisticQuorum-based

Reduce availability (even when there is no partitioning)Updates can only occur in the partition that has a majority of the replica managers

CS454/654 8-52

Available Copies ProtocolA read on a logical object may be performed by any available replica manager, but an update must be performed by all available replica managers in the group with copies of the object.

AX

Client + front end

P

B

Client + front end

Replica managers

deposit(A,3);

UT

deposit(B,3);

getBalance(B)

getBalance(A)

Replica managers

Y

M

B

NA

B

From Coulouris, Dollimore and Kindberg, Distributed Systems: Concepts and Design, 3rd ed. © Addison-Wesley Publishers 2000