Skip to main content

Fencing Token e Split Brain | Arquitetura

  • Fencing Token e Split Brain | Arquitetura

🔐 Fencing Token

Fencing Token é um mecanismo de proteção contra acessos concorrentes indevidos a um recurso compartilhado.

📌 O problema que ele resolve

Imagine dois nós (A e B) achando que são os “donos” de um mesmo recurso (ex: um disco, banco de dados ou lock distribuído). Se ambos escreverem ao mesmo tempo, pode ocorrer corrupção de dados.

🛠️ Como funciona

  • Um serviço central (ex: Zookeeper, etcd, Consul) gera tokens numéricos crescentes.
  • Sempre que um nó adquire o direito de usar o recurso, ele recebe um token maior que o anterior.
  • Toda operação no recurso inclui esse token.
  • O recurso só aceita operações com o maior token já visto.

✅ Resultado

Se um nó “antigo” tentar escrever depois de perder a liderança:

  • Seu token será menor
  • A operação será rejeitada
  • Evita corrupção de dados

🧠 Exemplo simples

  • Nó A recebe token 5
  • Depois, nó B recebe token 6
  • Se A tentar escrever com token 5, o recurso rejeita

👉 Muito usado em locks distribuídos, líderes de cluster e storage compartilhado.


🧠 Split-Brain

Split-brain é um estado inconsistente em sistemas distribuídos onde vários nós acreditam ser o líder ao mesmo tempo.

📌 Por que acontece?

Geralmente por:

  • Falha de rede
  • Latência alta
  • Perda de comunicação entre nós do cluster

🛠️ O que acontece

  • O cluster se divide em “partes” (partições)
  • Cada parte acha que está sozinha
  • Mais de um líder é eleito

🚨 Consequências

  • Escritas concorrentes
  • Dados divergentes
  • Corrupção ou perda de dados

🧠 Exemplo clássico

Cluster com 3 nós:

  • A, B e C
  • A perde comunicação com B e C
  • A acha que é líder
  • B e C elegem outro líder ➡️ Dois líderes ativos = split-brain

🔗 Relação entre Fencing Token e Split-Brain

Eles se complementam:

ConceitoFunção
Split-brainProblema (vários líderes)
Fencing TokenProteção contra os efeitos do problema

Mesmo que o split-brain aconteça:

  • O fencing token impede que o líder “antigo” cause dano
  • Apenas o nó com o token mais recente consegue escrever

📦 Onde você vê isso na prática

  • Kubernetes (leader election)
  • Zookeeper / etcd / Consul
  • Bancos distribuídos
  • Sistemas de arquivos distribuídos
  • Clusters de alta disponibilidade