Exemplo explicativo do Teorema CAP

De GEATI - Grupo de Estudos Avançados em TI
Ir para: navegação, pesquisa

Porém, segundo Brewer[1] , apenas dois destes pontos poderiam ser atingidos simultaneamente em um sistema de bases de dados distribuído, logo um ponto sempre estando comprometido, este teorema sendo explicado abaixo.

Considerando a seguinte situação: O processo A atualiza o valor do campo V de V0 para V1, a partir do nó X no qual foi feita a alteração. Como este é um sistema de armazenamento replicado, o no X, replica a alteração para o nó X', sendo que neste nó, o processo B solicita a leitura dos dados.


CAP1.png

Situação 1: Se houvesse qualquer falha na rede ou hardware, comprometendo a comunicação entre estes dois nós, quando o processo B requirisse a leitura destes dados ao nó X', este iria receber como resposta V=V0, que não é o valor atualizado de V, presente apenas no nó X. Logo neste exemplo, ve-se que a consistência dos dados fica comprometida

caption

Situação 2: Para privilegiar a consistência dos dados, neste exemplo foi tratada a escrita e a replicação dos dados como um processo único e homogêneo. Porém se qualquer falha de rede impedisse a replicação dos dados, o processo B teria que esperar ate que isto fosse solucionado para realizar a leitura dos dados. Assim a disponibilidade do sistema ficaria comprometida.

Desse modo, consegue-se chegar a 3 combinações possíveis, sendo que cada modelo se adéqua à sua necessidade:

Consistência e tolerância a partição, comprometendo a disponibilidade (CP): Seguindo a lógica da situação 2, na iminência da falha de um nó, este sistema pode ficar indisponível por bastante tempo. Recomendado para casos em que os dados deve ser consistentes, por exemplo, transações monetárias.

Consistência e disponibilidade, comprometendo a tolerância a partição (CA): Majoritariamente encontrado nas bases de dados relacionais, estes sistemas não sabem lidar com uma eventual falha de um nó, caso isso ocorra, o sistema inteiro pode ficar indisponível até o membro do cluster voltar.

Tolerância a partição e disponibilidade, comprometendo a consistência (AP)

Em situações onde precisa se estar online 24/7, como exemplo de um site de compras, a única propriedade que pode se abrir mão, é de uma forte consistência, esta não querendo dizer que os dados não terão consistência alguma, porém eventualmente dados podem estar desconsistentes. Esta é uma das bases para o modelo BASE.
  1. Brewer, E. A. (2000). Towards Robust Distributed Systems. Annual ACM Symposium on Principles of Distributed Computing