fr.wedoany.com Rapport : Cloudflare a lancé un service de consensus nommé Meerkat (suricate) qui permet aux services répartis dans plus de 330 centres de données dans le monde de lire et de modifier un état de plan de contrôle cohérent, même en cas de panne partielle des centres de données ou des liaisons, le système restant disponible pour les écritures.

En raison des interruptions et des délais de file d'attente fréquents sur Internet, la construction d'un système de données globalement cohérent et disponible représente un défi. Le service Meerkat utilise l'algorithme de consensus QuePaxa, qui, comme d'autres algorithmes similaires, permet à un groupe de machines de se mettre d'accord sur une même séquence de valeurs, à condition que la majorité d'entre elles restent opérationnelles et puissent communiquer entre elles.
QuePaxa ne nécessite pas un leader unique et autoritaire pour garantir la progression. Pendant ce que Cloudflare appelle la « tyrannie du timeout », toute réplique ou nœud non leader peut continuer à effectuer des opérations d'écriture. Sur le plan architectural, les développeurs demandent un ensemble de répliques Meerkat et spécifient l'emplacement des centres de données, Meerkat étant chargé du placement. Le client envoie des requêtes d'application à une réplique quelconque, qui les convertit en événements dans un journal de consensus partagé et renvoie une réponse. Chaque réplique maintient les entrées du journal décidé dans le même ordre ; certaines répliques peuvent temporairement accuser un retard. Les applications construites sur Meerkat, comme les magasins clé-valeur ou les systèmes de bail, lisent le journal et construisent leur propre état en conséquence.
Cloudflare explique qu'en l'absence de leader obligatoire, le système ne devient ni indisponible ni dégradé à cause d'une seule réplique, et aucune élection de leader n'est nécessaire. Les propositions soumises simultanément par différentes répliques interfèrent de manière constructive, ce qui est idéal pour le réseau de Cloudflare, où la latence peut varier considérablement. L'entreprise affirme avoir mené plusieurs preuves de concept impliquant jusqu'à 50 répliques réparties dans le monde. Lors de ces tests, le leader a échoué à plusieurs reprises, mais le cluster a continué à fonctionner sans augmentation du taux d'erreur.
Meerkat n'est pas encore en production et reste un service interne uniquement. L'entreprise souligne ses limites : il n'est pas conçu pour créer des systèmes de données génériques comme des bases de données. Tout algorithme de consensus a un coût : le délai de décision d'une proposition est proportionnel au délai entre la majorité des répliques. Si les répliques sont éloignées les unes des autres, la latence augmente, ce qui est inévitable.






