par Vladislav Shpilevoy
À : FOSDEM 2020
SWIM - est un protocole relativement nouveau pour découvrir et surveiller les nœuds d'un cluster, pour diffuser des événements et des données entre eux. Le protocole est extrêmement léger, décentralisé, et sa vitesse et sa charge par nœud ne dépendent pas de la taille du cluster.
Le protocole résout plusieurs tâches à la fois. Premièrement - construire et maintenir à jour la topologie d'un cluster sans configuration explicite. La tâche est assez complexe car :
❮ul❯
❮li❯les nouveaux nœuds viennent de démarrer et ne connaissent rien des autres, et ils doivent d'une manière ou d'une autre les découvrir ;❮/li❯
❮li❯les nœuds déjà en fonctionnement peuvent échouer, et cela doit être détecté afin de changer un maître, d'expulser un nœud irrécupérable du cluster, ou de le redémarrer.❮/li❯
❮/ul❯
Selon le protocole, les nœuds du cluster diffusent des paquets et envoient des requêtes ping p2p. La diffusion aide à découvrir de nouveaux nœuds, les pings p2p aident à détecter la défaillance d'un nœud connu.
Une deuxième tâche - la diffusion d'événements dans un cluster. Un événement est une défaillance de nœud ; un changement de UUID ; une mise à jour d'adresse IP ; l'apparition d'un nouveau nœud - tout ce qui affecte l'état du cluster. Parfois, les utilisateurs définissent leurs propres types d'événements. Lorsqu'un nœud apprend un événement, il doit le diffuser aux autres nœuds. Le protocole SWIM décrit un algorithme pour détecter et diffuser des événements, et donne les garanties suivantes :
❮ul❯
❮li❯il faut un temps constant pour apprendre un événement sur au moins un nœud du cluster ;❮/li❯
❮li❯il faut un temps logarithmique par rapport à la taille du cluster pour diffuser cet événement à chaque nœud du cluster.❮/li❯
❮/ul❯
Dans cette présentation, je parle de la façon dont SWIM fonctionne, comment et avec quelles améliorations essentielles il a été implémenté, comment utiliser SWIM, et quels sont les résultats de performance pratiques.
L'implémentation fait partie de Tarantool DBMS. Tarantool est le plus grand système de gestion de base de données Open-Source russe. Tarantool s'oriente actuellement vers une meilleure évolutivité, des améliorations dans le scaling horizontal, dans les calculs à l'échelle du cluster, et une meilleure gestion du cluster. Dans le cadre de cette feuille de route, l'implémentation du protocole SWIM a été récemment publiée.
Salle : K.1.105 (La Fontaine)
Début prévu : 2020-02-02 11:00:00