- Why care about concensus
- Specification
- Modele
- Detecteurs des fautes
- Scaling Fault-Detectors
- FD in HPC
- Ressources
- whether to commit a tx to a db
- agree on the id of a leader
- state machine replication
- atomic broadcasts
- clock synchronization
- PageRank
- smart power grids
- load balancing
- many other
validité (validity)
si un processus décidev
alorsv
est une valeur proposéeterminaison (termination)
tous les processus corrects decident finalementcoherence (agreement)
deux processus corrects ne peuvent decider differemmentintegrite (integrity)
un processus doit decider au plus une fois
Consensuls resoluble avec ♦S. En effet ♦S est le plus faible detecteur pour resoudre le consensus (minimalite) avec une majorite de processus corrects.
- as above plus;
- No two processes (whether faulty or not) decide differently
le processus appelant propose une valeur initiale v
le processus appelant décide v
propose(4) decide(7)
v v
-------------------------------->
propose(4) decide(7)
v v
-------------------------------->
propose(4) decide(7)
v v
-------------------------------->
correct
: ne défaille pas pendant toute la dureé de l'exécutionfautif
: pas correct
franche (crash)
: le processus fautif n'emet plus ni ne recoit de message de facon permanente -> silence sur defaillance (fail-silent), variante faute-visible (fail-stop)omission
: transitoiretemporaire
: trop tot ou trop tardByzantin
: malveillance
.______________________________.
|__________________. Byzantine |
|_______. omission | |
| crash | | |
|_______|__________|___________|
Fiable (reliable)
: sip
executesend(m)
versq
etq
est correct, alorsq
receveram
Quasi-fiable (quasi-reliable)
: sip
executesend(m)
versq
et,p
etq
sont corrects, alorsq
receveram
Equitable (fair-lossy)
: si un processus correct envoie un messagem
aq
une infinite de fois, alorsq
receveram
Borne delta (Δ) sur le temps de transmission
si un processusp
envoie un message versq
a l'instantt
, alorsq
recoit le message avantt+Δ
Borne phi (Φ) sur la vitesse relative des processus
si le processus le plus rapide prendx
unites de temps pour un traitement, alors le processus le plus lent ne peut pas prendre plusxΦ
temps pour faire le meme traitement
Permet une detection parfaite
| 2Δ + xΦ |
|------------->|
p -------------------------------->
| u alive? |^ aha
\. /
q -------------------------------->
- Pas de borne sur les delais de transmission
- Pas de borne sur les vitesses relatives des processus
- Impossibilite de Fischer, Lynch, Paterson [FLP85]
Dwork, Lynch, Stockmeier - 1998
- 32 modeles intermediaires entre synchrone et asynchrone
- Bornes Δ et Φ du modele synchrone:
- Existent mais sont inconnues, ou;
- Sont connues mais ont lieu a partir d'un temps
T
appeleGST
: global stabilization time
- Avant
GST
le systeme est instable (pas de bornes) - Apres le
GST
le systeme est stable (bornes) GST
est inconnu
- k-agreement [Cha90] plusieurs valeurs peuvent etre decides
------> //TODO What's the use for that? Examples?
- Les bornes sont non connues, valables a partir d'un moment
- Variantes : alternance de bonne et mauvaise periodes
- Borne restreinte a certains noeuds
- 1 bi-source (ultime) : il existe (ultimement) une borne sur les liens entrants et sortants de la source
- 1 source (ultime) : il existe (ultimement) une borne sur les liens sortants
- Algorithmique dependante du systeme
- Consensus probabiliste [BO83] : Des processus peuvent ne pas terminer
- Paxos [Lamport89] : Hypothese tres faible, terminaison non assuree
Chandra and Toueg define eight classes of failure detectors, based on when they suspect faulty processes and non-faulty processes. Suspicion of faulty processes comes under the heading of completeness; of non-faulty processes, accuracy.
-
forte
: A partir d'un moment tout processus defaillant est suspecte partous
les processus corrects -
strong
: Every faulty process is eventually permanently suspected by every non-faulty process. -
faible
: a partir d'un moment tout processus defaillant est suspecte parun
processus correct -
weak
: Every faulty process is eventually permanently suspected by some non-faulty process.
There are two temporal logic operators embedded in these statements: "eventually permanently" means that there is some time t0 such that for all times t ≥ t0, the process is suspected. Note that completeness says nothing about suspecting non-faulty processes: a paranoid failure detector that permanently suspects everybody has strong completeness.
Elles sont equivalentes - on peut construir une forte a partir d'une faible.
- La faible est incluse dans forte
- Construction de la forte a partir d'une faible
Task1: repeat forever
{p queries its local failure detector module Dp}
suspects_p <- Dp
send(p, suspects_p) to all
Task2: when receive (q, suspects_q) from some q
output_p <- (output_p U suspects_q) - {q}
forte
aucun processus correct n'est suspectefaible
il existe au moins un processus correct qui n'est jamais suspectefinalement forte
il existe un instant a partir duquel tout processus correct n'est plus suspecte par aucun processus correctfinalement faible
il existe un instant a partir duquel au moins un processus correct n'est suspecte par aucun processus correct
Note that "strong" and "weak" mean different things for accuracy vs completeness: for accuracy, we are quantifying over suspects, and for completeness, we are quantifying over suspectors. Even a weakly-accurate failure detector guarantees that all processes trust the one visibly good process.
-
Algorithmique en asynchrone (indep dy systeme)
-
Hypotheses plus facilement utilisables
-
Introduit en '91
-
Oracle local sur chaque noeud
-
Fournit une liste des processus suspectes d'etre defaillants
-
Informations non fiables (possibilite de fauses suspicions)
Completude (Completeness)
: un processus defaillant doit etre detecte comme defaillant
Justesse (Accuracy)
: un processus correct ne doit pas etre considere comme defaillant
Justesse | Forte | Faible | Finalement force | Finalement faible |
---|---|---|---|---|
Completude forte | P | S | ♦P | ♦S |
Completude faible | Q | W | ♦Q | ♦W |
- P→ An innocent is never suspected
- <>P→ In the end every innocent will be not guilty
- S → At least one innocent is never suspected
- <>S → In the end at least one innocent is never suspected
- D'où <>S == Omega parce que
- Omega→ Gives you one innocent (who you choose as leader cause you know he is innocent and you can trust him)
Completude faible
et forte
sont equivalentes (on peut construite une completude forte a partir d'une faible)
Force des detecteurs:
P ---> ♦ P
| |
v v
S ---> ♦ S
Implementations reposant sur des temporisateurs : partiellement synchrones.
Bertier et al
(a terme, plus d'erreur)
- Il existe un temps
GST
(Global Stabilization Time), ou il y a une brone inconnue sur les delais de transmission et de traitement des messages- Permet d'implementer ♦P
- Idee: A chaque erreur on augmente son temporisateur
- Il existe un moment (apres
GST
) ou on ne fera plus d'erreur (le temporisateur a atteint la borne inconnue)
- Il existe un moment (apres
(a terme plus d'erreur sur 1 processus)
Hypothese reduite a un ensemble de canaux ultimement synchrones.
♦-timely link
est un canal ultimement synchrone
♦-j-source
au moins j
liens sortant sont ultimement ponctuels
Ω peut etre implemente si y a au moins une ♦-j-source
correcte (j
etant nombre de defaillants)
Propose une liste de processus corrects
Intersection
il y a toujours une intersection non vide dans les listes proposesCompletude ultime
ultimement, il n'y a pas de processus fautif dans les listes
(Ω, ∑)
le plus faible detecteur pour realiser le consensus avec n-1
fautes
Problems | Consensus | k-set agreement | set agreement | Eventual Consistency |
---|---|---|---|---|
Shared memory | Ω [LH94] | k-anti-Ω [GK09] | anti-Ω [Z10] | None |
Message passing | (Ω, ∑) | None | L [DFGT08] | Ω [DKGPS15] |
- Fonde sur des rounds et un leader
- Les procs executent des rounds de maniere incrementale
- Dans chaque round:
- Le proc dont l'ID correspond au numero de la round est le leader
id leader = id ronde % N
- Le leader choisit sa valeur courante, la decide et la diffuse a tous
- Les non leader (
id node != id round %N
) attendent:- la reception du message du leader pour choisir sa veleur
- la suspicion du leader
- En
N
rounds tous les processus ont decide (tous ont ete leader)
f
nombre max de fautes tolerees- Chaque proc
P_i
maintient un vecteurV_i
pour stocker les valeurs proposees f+1
rounds:- Chaque proc
P_i
diffuseV_i
de facon incrementale - Attendre la reception des vecteurs de tous les processus non suspectes
- Chaque proc
- Apres
f+1
roundsP_i
choisit et decide la premiere valeur non vide de son vecteur
- Algo du coordinateur tournant [CHT96]
f < n/2
crashes- Procs numerotes
1, 2, ..., n
- Execution de
rondes async
- Round
r
'scoordinator = proc(r mod n) +1
- Coord
c
:- Impose sa velur
v
v
est choisie sic
n'est pas suspecte
- Impose sa velur
- 4 phases par round
Phase1
: timestamp the current value with the last round's time, and sent it to coordinatorPhase2
: Coord awaits majority of valuesPropVal
= one val from the newest ones- Broadcast
PropVal
Phase3
: For each correct proc- Receive
PropVal
: send back ACK, update local value - If suspecting coordinator: send
nack
- Receive
Phase4
:- Coord receives majority of votes (either
ack
ornack
), updates local value - If majority
ack
- Final value = local value + reliable broadcast value
- When receiving all the procs decide the received value
- If no majority
- New round
- Coord receives majority of votes (either
- Ring -
WLL07-PDC
- Every node sends a heartbeat to the successor
- Low messages overhead
- High detection time (ring information propagation)
- Probabilistic approach -
GCG01-PODC
- Each round, each node picks randomly a distant node to observe
- Assure une completude et justesse probabiliste
- Scales
- Difficulte pour dimmensionner les temporisateurs
- Hierarchic -
BMS03-DSN
- Hypercube -
BBGHRS16
(Supercomputing)
George Bosilca [1]
Aurélien Bouteiller [1]
Amina Guermouche [1]
Thomas Hérault [1]
Yves Robert [1,2]
Pierre Sens [3]
Jack Dongarra [1,4]
University Tennessee Knoxville - 1
ENS Lyon, France - 2
LIP6, Inria Paris, France - 3
University of Manchester, UK - 4
SC’16 – November, 2016
- Applications continue execution after crash of several nodes
- Need rapid and global knowledge of group members
- Main features
- Rapid failure detection
- Global failure knowledge propagation
- Resilience mechanism should have minimal impact
- Processes arranged as a ring
- Periodic heartbeats from a node to its successor
- Maintain ring of live nodes
- Reconnect after a failure
- Inform all processes
- Hypercube Broadcast Algorithm - P. Ramanathan and Kang G. Shin, "Reliable Broadcast Algorithm", IEEE Trans. Computers, 1988
- Disjoint paths to deliver multiple broadcast message copies
- Completes if
f <= log(n)-1
,f
being the number of falures,n
the number of live processes