Using real time in fault-tolerant systems - low-latency ... - Google Sites

0 downloads 78 Views 239KB Size Report
deliver messages to all processes in the same order ... solves the common&easy failure-free case by itself. 2 ... wh
Using real time in fault-tolerant systems low-latency atomic broadcast in the presence of contention

Piotr Zieli´ nski Cavendish Laboratory University of Cambridge

DISC 2006

Piotr Zieli´ nski

Using real time in fault-tolerant systems

Ordering in distributed systems time p1 p2 p3 Atomic Broadcast deliver messages to all processes in the same order fault-tolerance: processes crash, messages get lost asynchrony: messages can get arbitrarily delayed ♦S failure detector

Optimism: prepare for the worst, hope for the best Piotr Zieli´ nski

Using real time in fault-tolerant systems

Ordering in distributed systems time p1 p2 p3 Atomic Broadcast deliver messages to all processes in the same order fault-tolerance: processes crash, messages get lost asynchrony: messages can get arbitrarily delayed ♦S failure detector

Optimism: prepare for the worst, hope for the best Piotr Zieli´ nski

Using real time in fault-tolerant systems

Ordering in distributed systems time p1 p2

Atomic Broadcast

p3 Atomic Broadcast deliver messages to all processes in the same order fault-tolerance: processes crash, messages get lost asynchrony: messages can get arbitrarily delayed ♦S failure detector

Optimism: prepare for the worst, hope for the best Piotr Zieli´ nski

Using real time in fault-tolerant systems

Protocol  [Chandra and Toueg, 1996]      [Pedone and Schiper, 1999] [Aguilera et al., 2000]   [Pedone and Schiper, 2003]    [Zieli´ nski, 2005]  [Vicente and Rodrigues, 2002] this work

clocks

no clocks

Related broadcast protocols

ordinary broadcast (no order)

Steps

Condition

3 2 2 2 2

always no conflicts no conflicts no contention either

2+δ 2

always (δ > 0) always

1

always

This protocol 1

solves the common&easy failure-free case by itself

2

delegates failure-handling to Generic Broadcast

Piotr Zieli´ nski

Using real time in fault-tolerant systems

Timestamp-based Atomic Broadcast abcast a:21

p1

abcast b:151

abcast c:72

p2

abcast d:93

p3

delay 0

50

100

150

200

250

300

Principle: deliver messages in the order of increasing timestamps abcast timestamps: a:21, b:151, c:72, d:93 delivery order: a, c, d, b

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case abcast a:21 hmesg p1 , 21, ai

p1

abcast b:151 hmesg p1 , 151, bi

abcast c:72 hmesg p2 , 72, ci

p2

abcast d:93 hmesg p3 , 93, di

p3 0

50

100

delay 150

200

250

300

Statements positive statements: hmesg p1 , 21, ai

hmesg p1 , 21, ai hmesg p2 , 72, ci hmesg p3 , 93, di Piotr Zieli´ nski

hmesg p1 , 151, bi

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

deliver c

deliver a

deliver c

deliver a

deliver c

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

delay 150

200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1

when sending a message: hempty p1 , 22, 150i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p2 , 73, 93i hempty p2 , 94, 151i hempty p3 , 1, 92i hmesg p3 , 93, di hempty p3 , 94, 151i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p2 , 1, 71i hmesg p2 , 72, ci Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p2 , 73, 93i hempty p3 , 1, 92i hmesg p3 , 93, di Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Protocol for the failure-free case hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Statements positive statements: hmesg p1 , 21, ai negative statements: 1 2

when sending a message: hempty p1 , 22, 150i when receiving a message: hempty p1 , 73, 93i

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p2 , 73, 93i hempty p2 , 94, 151i hempty p3 , 1, 92i hmesg p3 , 93, di hempty p3 , 94, 151i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p2 , 73, 93i hempty p2 , 94, 151i hempty p3 , 1, 92i hmesg p3 , 93, di hempty p3 , 94, 151i

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di hempty p3 , 94, 151i

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p2 , 1, 71i hmesg p2 , 72, ci

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Failures can hurt hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Problem: lost negative statements prevent delivery hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i hmesg p3 , 93, di hempty p3 , 94, 151i

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol hempty p1 , 1, 20i hempty p1 , 22, 150i deliver a hmesg p1 , 21, ai hmesg p1 , 151, bi

p1

hempty p2 , 1, 71i

p2

hempty p3 , 1, 92i hmesg p3 , 93, di 0

50

100

deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci

p3

deliver c

delay

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i

150

200

250

300

Fault tolerance leader p1 simulates crashed processes: hempty p2 , 1, 151i if conflicts, the first statement wins hmesg p2 , 72, ci hempty p2 , 1, 151i hmesg p2 , 82, ei ⇐⇒ hempty p2 , 1, 72i hmesg p2 , 72, ci hempty p2 , 73, 151i

ordering conflicting statements 1 2

negative self-statements use ordinary broadcast (1 step) other statements use generic broadcast (2 steps) Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hempty p2 , 1, 71i

Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hempty p2 , 1, 71i hempty p3 , 1, 92i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p2 , 1, 71i hempty p3 , 1, 92i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hempty p2 , 1, 71i hempty p3 , 1, 92i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p3 , 1, 92i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p2 , 73, 93i hempty p3 , 1, 92i hmesg p3 , 93, di Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Fault-tolerant protocol p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b

delay 150

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i 200

250

300

Broadcasts 1

negative self-statements use ordinary broadcast (1 step)

2

other statements use generic broadcast (2 steps)

hempty p1 , 1, 20i hmesg p1 , 21, ai hempty p1 , 22, 150i hmesg p1 , 151, bi hempty p2 , 1, 71i hmesg p2 , 72, ci hempty p2 , 73, 93i hempty p2 , 94, 151i hempty p3 , 1, 92i hmesg p3 , 93, di hempty p2 , 94, 151i Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Algorithm summary p1

hempty p1 , 1, 20i

hempty p1 , 22, 150i

hmesg p1 , 21, ai

hmesg p1 , 151, bi

hempty p2 , 1, 71i

p2

deliver a deliver c deliver d deliver b

deliver a deliver c deliver d deliver b hempty p2 , 73, 93i hempty p2 , 94, 151i

hmesg p2 , 72, ci hempty p3 , 1, 92i

p3

hmesg p3 , 93, di 0

50

100

deliver a deliver c deliver d deliver b hempty p3 , 94, 151i

delay 150

200

250

300

Algorithm summary positive and negative statements leader issues negative statements for crashed processes if conflicts, the first statement wins 1 2

negative self-statements use ordinary broadcast (1 step) other statements use generic broadcast (2 steps) Piotr Zieli´ nski

Using real time in fault-tolerant systems

350

Properties Algorithm properties 2-step latency if no failures clocks required only if contention

safety and liveness always guaranteed even if failures or unsynchronized clocks

quiet if no messages broadcast unlike [Vicente and Rodrigues, 2002] with latency 2 + δ

Lower bounds 1 2

1-step latency impossible even in synchronous model 2-step latency requires clocks no external processes no failures

Piotr Zieli´ nski

Using real time in fault-tolerant systems

Conclusion: don’t condemn real time!

Conclusion real time gives useful hints that can reduce latency 3 steps

=⇒

2 steps

asynchronous model

=⇒

synchronous model

Future other problems might benefit from similar solutions look for syncho-asynchro discrepancy in latency

Piotr Zieli´ nski

Using real time in fault-tolerant systems

References Marcos Kawazoe Aguilera, Carole Delporte-Gallet, Hugues Fauconnier, and Sam Toueg. Thrifty Generic Broadcast. In Proceedings of the 14th International Symposium on Distributed Computing, pages 268–282, Toledo, Spain, 2000. Tushar Deepak Chandra and Sam Toueg. Unreliable failure detectors for reliable distributed systems. Journal of the ACM, 43(2):225–267, 1996. Fernando Pedone and Andr´e Schiper. Optimistic Atomic Broadcast: a pragmatic viewpoint. Theoretical Computer Science, 291(1):79–101, 2003. Fernando Pedone and Andr´e Schiper. Generic Broadcast. In Proceedings of the 13th International Symposium on Distributed Computing, pages 94–108, 1999. Pedro Vicente and Lu´ıs Rodrigues. An indulgent uniform total order algorithm with optimistic delivery. In Proceedings of 21st Symposium on Reliable Distributed Systems, Osaka, Japan, 2002. IEEE Computer Society. Piotr Zieli´ nski. Optimistic Generic Broadcast. In Proceedings of the 19th International Symposium on Distributed Computing, pages 369–383, Krak´ ow, Poland, September 2005. Piotr Zieli´ nski

Using real time in fault-tolerant systems