Pour comprendre etcd, il est important de connaître les trois concepts clés du cluster d’applications pour la gestion du stockage :
- Chef (leader)
- Élections (elections)
- Période (terms)
Dans les systèmes Raft, le cluster élit un chef pour une période donnée. Il traite toutes les demandes de stockage qui correspondent au consensus du cluster. Les demandes qui ne nécessitent pas le consentement du cluster, comme les accès en lecture, peuvent être traitées indépendamment par chaque membre du cluster. Si le chef accepte un changement, etcd s’assure qu’il reproduit l’information aux nœuds successeurs. Dès réception de la confirmation, le chef prend en charge le changement.
La coordination du chef avec les nœuds du cluster via une base de données etcd est particulièrement précieuse pour les applications distribuées. Si des changements affectent le fonctionnement d’un nœud, celui-ci peut bloquer les changements. Cela permet de stabiliser l’application et réduire au minimum les problèmes ultérieurs.
Si le chef échoue ou ne répond pas pendant une longue période, les nœuds restants du cluster élisent un nouveau chef après un certain temps. Le temps nécessaire à un nœud pour demander une nouvelle élection et se désigner comme candidat varie d’un nœud à l’autre. Ceci est déterminé par un « chronomètre » dont dispose chaque nœud. Cela permet aux nœuds d’intervenir en tant que chefs le plus rapidement possible.
Pour garantir une majorité à chaque élection, le nombre de nœuds du cluster doit être impair. Pour des raisons de performance, il est recommandé de ne pas utiliser un cluster comportant plus de sept nœuds.