master-segfault


Project maintained by tshikaboom Hosted on GitHub Pages — Theme by mattgraham

Why care about concensus

Specification

Consensus

Consensuls resoluble avec ♦S. En effet ♦S est le plus faible detecteur pour resoudre le consensus (minimalite) avec une majorite de processus corrects.

Uniform Consensus

Primitives

propose(v)

le processus appelant propose une valeur initiale v

decide(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
-------------------------------->

Modele

Types de fautes

Processus

.______________________________.
|__________________. Byzantine |
|_______. omission |           |
| crash |          |           |
|_______|__________|___________|

Canaux

Modeles temporels - (a)sync

Modele synchrone

Permet une detection parfaite

     |    2Δ + xΦ   |
     |------------->|
p -------------------------------->
     | u alive?     |^ aha
      \.            /
q -------------------------------->

Modele asynchrone

Modeles partiellement synchrone

Dwork, Lynch, Stockmeier - 1998

Contourner FLP

Changer le probleme

Systemes partiellement synchrones [DDS87]

Consensus imparfait

Detecteurs des fautes

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.

Specs

Completude (completness)

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.

  1. La faible est incluse dans forte
  2. 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}

Justesse (accuracy)

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.

Detecteurs de defaillance non fiables [CHT96]

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

Hypotheses temporelles

Implementations reposant sur des temporisateurs : partiellement synchrones.

Pour ♦P

Bertier et al (a terme, plus d’erreur)

Algo ♦P

fd-diamond-p

Pour ♦S et Ω

(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)

Algo Ω

fd-omega

Detecteur ∑

Propose une liste de processus corrects

(Ω, ∑) le plus faible detecteur pour realiser le consensus avec n-1 fautes

FD Minimum

Problems Consensus k-set agreement set agreement Eventual Consistency
Shared memory Ω [LH94] k-anti-Ω [GK09] anti-Ω [Z10] None
Message passing (Ω, ∑) None L [DFGT08] Ω [DKGPS15]

Architecture

fd-archi

Algo1 - Consensus avec P

Algo2 - Consensus avec P

Algo3 - Consensus avec ♦S

How it works

Scaling Fault-Detectors

FD in HPC

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

FD

Reconnecting the ring

fd-ring-reco

Broadcast algo - Hypercube

fd-hypercube

Ressources