por Vladislav Shpilevoy
Em: FOSDEM 2020
SWIM - é um protocolo relativamente novo para descobrir e monitorar nós de cluster, para disseminar eventos e dados entre eles. O protocolo é extremamente leve, descentralizado, e sua velocidade e carga por nó não dependem do tamanho do cluster.
O protocolo resolve várias tarefas ao mesmo tempo. Primeiro - construir e manter atualizada a topologia de um cluster sem configuração explícita. A tarefa é bastante intrincada porque:
❮ul❯
❮li❯novos nós que acabaram de ser iniciados não sabem nada sobre os outros, e eles devem de alguma forma descobri-los;❮/li❯
❮li❯nós já em funcionamento podem falhar, e isso deve ser detectado para que um mestre seja trocado, ou um nó irrecuperável seja removido do cluster, ou reiniciado.❮/li❯
❮/ul❯
De acordo com o protocolo, os nós do cluster transmitem pacotes e enviam solicitações de ping p2p. A transmissão ajuda a descobrir novos nós, os pings p2p ajudam a detectar a falha de um nó conhecido.
Uma segunda tarefa - disseminação de eventos em um cluster. Evento é uma falha de nó; mudança de UUID; atualização de endereço IP; aparecimento de um novo nó - qualquer coisa que afete o estado do cluster. Às vezes, os usuários definem seus próprios tipos de eventos. Quando um nó toma conhecimento de um evento, ele precisa disseminar o evento para outros nós. O protocolo SWIM descreve um algoritmo de como detectar e disseminar eventos, e dá as seguintes garantias:
❮ul❯
❮li❯leva um tempo constante para aprender sobre um evento em pelo menos um nó no cluster;❮/li❯
❮li❯leva um tempo logarítmico em relação ao tamanho do cluster para disseminar esse evento para cada nó do cluster.❮/li❯
❮/ul❯
Na palestra, falo sobre como o SWIM funciona, como e com quais melhorias essenciais foi implementado, como usar o SWIM, e quais são os resultados práticos de desempenho.
A implementação é parte do Tarantool DBMS. Tarantool é o maior DBMS Open-Source da Rússia. O Tarantool atualmente está se direcionando para melhor escalabilidade, melhorias em escalabilidade horizontal, em cálculos em todo o cluster, e melhor gerenciamento de cluster. No escopo desse roadmap, a implementação do protocolo SWIM foi recentemente lançada.
Sala: K.1.105 (La Fontaine)
Início programado: 2020-02-02 11:00:00