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:
| Conceito | Função |
|---|---|
| Split-brain | Problema (vários líderes) |
| Fencing Token | Proteçã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