Recuperação do cérebro dividido em NCache para 100% de tempo de atividade

NCache é um cache distribuído in-memory extremamente rápido e escalável para .NET / .NET Core. Maioria do tempo, NCache é executado em ambientes de produção para aplicativos de missão crítica. Como resultado, alta disponibilidade e 100% de tempo de atividade é um requisito muito importante para NCache. E, NCache se destaca nesta área muito bem através de uma variedade de recursos.

Um desses recursos disponíveis é o Split Brain Detection and Recovery para evitar qualquer tempo de inatividade.

O que é um Split Brain no cluster de cache?

NCache cria um cluster de cache dinâmico de autorrecuperação consistindo em vários servidores que se comunicam por meio de TCP. Todos os servidores de cache são interconectados em cluster e a associação de cluster é mantida em tempo de execução e propagada não apenas para todos os servidores de cache, mas também para todos os clientes de cache.

No entanto, como qualquer sistema distribuído, NCache cluster pode enfrentar uma situação em que um ou mais servidores de cache são desconectados do restante dos servidores no cluster, mas ambos os conjuntos de servidores continuam em execução. Isso geralmente ocorre devido a falhas ou problemas de rede.

Quando isso acontece, cada conjunto de servidores de cache se considera como os servidores sobreviventes do cluster de cache original e assume que o outro conjunto de servidores de cache caiu (daí o termo cérebro dividido que em termos médicos significa que o lado esquerdo do cérebro não não sabe sobre o lado direito do cérebro). Os clientes de cache também podem ser divididos de maneira semelhante ou podem continuar a se comunicar com todos os servidores de cache com base na associação do cluster original.

Isso obviamente não é uma condição saudável e normal e leva a erros na operações de cache e o mais importante para problemas de integridade de dados. Cada “cluster dividido” agora tem sua própria cópia de dados que está sendo atualizada de forma independente pelos clientes. E você acaba com duas ou mais cópias dos mesmos dados sendo atualizadas sem qualquer sincronização.

Como o cérebro dividido é detectado?

NCache tem a capacidade de detectar automaticamente quando ocorre um cérebro dividido. A associação ao cluster é mantida em todos os servidores de cache no cluster. Assim, sempre que um cluster é dividido em dois ou mais subclusters devido à situação do cérebro dividido, cada subcluster pensa que é o cluster sobrevivente e continua trabalhando com seus dados.

Mas, ao mesmo tempo, sabe que existem outros servidores de cache que deixaram o cluster de maneira anormal. Uma maneira normal é quando o administrador de cache usa um NCache ferramenta para remover um servidor de cache do cluster. Assim, cada sub-cluster continua tentando se reconectar com os “servidores perdidos”. Ao mesmo tempo, cada subgrupo registra eventos para o Log de Eventos do Windows indicando que alguns de seus membros originais saíram. Assim, no caso de um cérebro dividido, o NCache o administrador vê eventos de “nó esquerdo” para quase todos os servidores de cache.

É somente quando a conexão de rede entre os subgrupos divididos é restaurada que eles descobrem o fato de que um cérebro dividido realmente ocorreu. Até este momento, eles continuam acreditando que alguns de seus membros deixaram o cluster.

Ao perceber que ocorreu um split-brain, cada subcluster registra eventos no log de eventos do Windows e também pode notificar o administrador do cache por meio de Notificação de Email que ocorreu um Split Brain.

Como funciona a recuperação automática do cérebro dividido?

NCache permite configurar a recuperação automática do cérebro dividido. Se você fizer isso sempre que NCache detecta um cérebro dividido, ele se recupera automaticamente dele. Habilite a recuperação do cérebro dividido por meio de config.ncconf adicionando o etiqueta sob o marcação. Você pode então alterar o sinalizador de ativação para verdadeiro e definir o intervalo de detecção para cérebro dividido em segundos.

<cache-settings...>
  <split-brain-recovery enable="True" detection-interval="60"/>
</cache-settings>

Quando um cluster é dividido em dois ou mais subclusters e depois sua conexão de rede é restaurada, eles finalmente percebem que ocorreu um split-brain. Neste ponto, se o usuário configurou a recuperação automática, todos os subclusters negociam entre si para descobrir qual subcluster deve se tornar o “cluster mestre” e o restante dos subclusters então se junta a esse “cluster mestre”. cluster” jogando fora seus dados e agindo como se fossem novos nós ingressando em um cluster existente.

As regras usadas para determinar qual subcluster deve se tornar “mestre” são simples. É o subcluster com o maior número de nós membros. E, se vários subclusters tiverem um número igual de nós membros, então aquele cujo endereço IP do coordenador for menor ganha e se torna o “cluster mestre”. E o restante do subcluster se junta a ele e o resultado final é um grande cluster equivalente ao tamanho do cluster original.

O que fazer a seguir?

© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.