Home ALGOREP: How to build a Failure Detectors
Post
Cancel

ALGOREP: How to build a Failure Detectors

Lien de la note Hackmd

Les slides du cours

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

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.

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

This post is licensed under CC BY 4.0 by the author.