por Vladislav Shpilevoy
En: FOSDEM 2020
SWIM - es un protocolo relativamente nuevo para descubrir y monitorear nodos de clúster, para diseminar eventos y datos entre ellos. El protocolo es extremadamente ligero, descentralizado, y su velocidad y carga por nodo no dependen del tamaño del clúster.
El protocolo resuelve varias tareas a la vez. Primero - construir y mantener actualizada la topología de un clúster sin configuración explícita. La tarea es bastante intrincada porque:
❮ul❯
❮li❯los nuevos nodos recién iniciados no saben nada sobre los demás, y de alguna manera deben descubrirlos;❮/li❯
❮li❯los nodos que ya están en funcionamiento pueden fallar, y esto debe ser detectado para cambiar un maestro, o expulsar un nodo irrecuperable del clúster, o reiniciarlo.❮/li❯
❮/ul❯
Según el protocolo, los nodos del clúster transmiten paquetes y envían solicitudes de ping p2p. La transmisión ayuda a descubrir nuevos nodos, los pings p2p ayudan a detectar la falla de un nodo conocido.
Una segunda tarea - diseminación de eventos en un clúster. Un evento es una falla de nodo; cambio de UUID; actualización de dirección IP; aparición de un nuevo nodo - cualquier cosa que afecte el estado del clúster. A veces los usuarios definen sus propios tipos de eventos. Cuando un nodo se entera de un evento, necesita diseminar el evento a otros nodos. El protocolo SWIM describe un algoritmo sobre cómo detectar y diseminar eventos, y ofrece las siguientes garantías:
❮ul❯
❮li❯toma un tiempo constante enterarse de un evento en al menos un nodo del clúster;❮/li❯
❮li❯toma un tiempo logarítmico respecto al tamaño del clúster para diseminar ese evento a cada nodo del clúster.❮/li❯
❮/ul❯
En la charla hablo sobre cómo funciona SWIM, cómo y con qué mejoras esenciales fue implementado, cómo usar SWIM, y cuáles son los resultados prácticos de rendimiento.
La implementación es parte de Tarantool DBMS. Tarantool es el mayor DBMS Open-Source ruso. Tarantool actualmente avanza hacia una mejor escalabilidad, mejoras en escalado horizontal, en cálculos a nivel de clúster, y mejor gestión del clúster. En el marco de esa hoja de ruta, la implementación del protocolo SWIM fue lanzada recientemente.
Sala: K.1.105 (La Fontaine)
Inicio programado: 2020-02-02 11:00:00