Lien de la note Hackmd
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