Para comprender cómo funciona etcd, es importante conocer los tres términos clave del clúster de la aplicación para administrar bases de datos:
- Líder (leader)
- Elecciones (elections)
- Términos (terms)
En los sistemas basados en Raft, el clúster elige un líder por un cierto período de tiempo, que procesa todas las solicitudes de almacenamiento que están en consenso con el clúster. Cada integrante del clúster puede responder de manera independiente a las solicitudes que no requieren el consentimiento del clúster, como los accesos de solo lectura. Si el líder acepta un cambio, etcd asegura que este replique la información a los nodos sucesores. Tan pronto como estos hayan confirmado la recepción, el líder acepta el cambio.
La coordinación del líder con los nodos del clúster a través de una base de datos etcd es especialmente conveniente en el caso de las aplicaciones distribuidas. Si los cambios afectan a la funcionalidad de un nodo, este puede bloquearlos, lo que asegura que la aplicación se mantenga estable y que se minimicen los problemas posteriores.
Si el líder falla o no responde durante un período prolongado, el resto de nodos del clúster elige un nuevo líder después de cierto tiempo. El tiempo que pasa hasta que otro nodo solicita una nueva elección y se presenta como candidato varía de un nodo a otro y se determina mediante una especie de cronómetro que tiene cada uno de ellos. De esta manera, se garantiza que los nodos puedan intervenir como líderes lo más rápido posible.
El número de nodos del clúster debe ser impar para garantizar que siempre haya una mayoría. Por motivos de rendimiento, no se recomienda utilizar un clúster que tenga más de siete nodos.