Middle
O que é o teorema CAP?
sobes.tech IA
Resposta da IA
O Teorema CAP (também conhecido como Teorema de Brewer) afirma que, em um sistema de computação distribuída, não é possível garantir simultaneamente:
- Consistência: Todos os nós veem os mesmos dados no mesmo momento. Qualquer operação de leitura obtém os dados mais recentes escritos.
- Disponibilidade: Cada solicitação recebe uma resposta não vazia, independentemente do estado de outros nós. O sistema está sempre disponível para operações de leitura e gravação.
- Tolerância a partições: O sistema continua funcionando apesar da perda de comunicação entre os nós (divisões de rede).
Em condições de partição de rede ($P$), o sistema deve escolher entre consistência ($C$) e disponibilidade ($A$).
- Sistema CA: Assume que não há partições de rede. Quando ocorrem, o sistema fica inacessível ou inconsistente. Exemplos: bancos de dados relacionais clássicos com replicação síncrona em uma rede local.
- Sistema CP: Sacrifica a disponibilidade em favor da consistência durante uma partição de rede. Se um nó não consegue se comunicar com a maioria, ele para de responder às solicitações para garantir a consistência dos dados. Exemplos: Zookeeper, etcd, sistemas distribuídos que usam protocolos de consenso como Paxos ou Raft.
- Sistema AP: Sacrifica a consistência em favor da disponibilidade durante uma partição de rede. O sistema continua respondendo às solicitações, mas pode fornecer dados desatualizados ou conflitantes. A consistência eventual é alcançada posteriormente. Exemplos: DynamoDB, Cassandra, MongoDB (por padrão em algumas configurações).
A Teorema CAP aplica-se a sistemas de armazenamento de dados distribuídos. Em sistemas reais, muitas vezes é necessário fazer compromissos e escolher o modelo que melhor se adapta aos requisitos específicos da aplicação.