Try   HackMD

ALGOREP: How to build a Failure Detectors

On a un ensemble de machine. Comment monitorer pour savoir qu'une est morte ?

Si quelqu'un dans la salle a une machine qui meurt, on va le savoir

Supposons qu'on a un admin 6, pourquoi c'est pas une bonne solution ?

Ca se scale pas bien
On centralise dans un seul data center pour un systeme distribue

Comment on pourrait faire pour detecter les machines qui meurent de maniere auto ?
Si on a une mamie agee, coment on sait ?

On la rappelle le matin, le midi, a 14h

Et si la mamie est tres lente a repondre au telephone ?

On appelle une premiere fois, une seconde fois, etc.
Au bout de certaines sonneries on la suppose morte

On se forge une conviction de si la machine est vivante ou morte

On est pas sur a

100%

:::

Desirable properties

  • Completness
  • Accuracy
  • Speed
  • Scale
    • Equal load on each member
    • Network Message Load

What real failure detectors prefer ?

  • Success and accuracy
  • Scale & Speed

Strategies

Centralized heartbeating

On a une machine centrale qui envoie des messages a tout le monde, sauf que la machine ne fait que ca et doit faire d'autre decisions

  • On peut avoir une machine avec superposition de couches
    • Un chef pour les fautes, un chef pour les decisions, etc.

On empile les couches jusqu'a contrer le theoreme d'impossibilite

Ring Heartbeating

On va regarder nos voisins a gauche et a droite, pour propager le message qu'une machine est morte on doit faire le tour de l'anneau.

Si notre voisin de droite est mort, comment on fait ?

On veut se connecter a son voisin de droite
Et si son voisin de droite est mort aussi ?
Soit on est coupe du reseau, soit systeme de cascade de mort de machines

All-to-all heartbeating

  • A processus heartbeats periodically all its neighbours
  • If heartbeat not received from a process within timeout, mark this process as failed

Gossiping heartbeating

On envoie un heartbeat a quelqu'un, cette personne dit telle ou telle personne est vivante

  • On prend un pool de personnes random a qui envoyer notre heartbeat

Conclusion

Heartbeat is a fundamental of Failure detection