Consistência nos teoremas ACID e CAP, são os mesmos?

18

Pelo meu entendimento, a consistência no ACID é garantir a integridade dos dados.

No entanto, a consistência no CAP significa que os dados podem aparecer rapidamente no sistema distribuído.

Isso significa: eles não são o mesmo conceito?

Yang Xia
fonte

Respostas:

18

Eles não são realmente iguais, devido ao escopo dos dados

ÁCIDO

BONÉ

  • Consistência (todos os nós têm os mesmos dados por meio da consistência eventual)
  • Disponibilidade
  • Tolerância de partição: o sistema continua a funcionar, apesar da perda ou falha arbitrária de mensagens de parte do sistema

SINOPSE

  • O ACID endereça a consistência dos dados de um nó individual
  • O CAP aborda a consistência de dados em todo o cluster
RolandoMySQLDBA
fonte
11
Eventual. Eventualmente deveria estar em negrito, Rolando. É o fim do negócio :) Feliz Ano Novo!
Philᵀᴹ
3

Teorema do CAP : especifica que um sistema distribuído pode fornecer dois serviços (ex. Disponibilidade e tolerância de partição), mas nunca três. Se, por exemplo, um serviço fornece Disponibilidade e Particionamento, ele nunca pode garantir Consistência, não imediatamente, portanto, a Consistência Eventual é usada, o que permite que a infraestrutura flua entre inconsistência e consistência; no entanto, a certa altura, mais cedo ou mais tarde, a infraestrutura se tornará consistente , resultando em eventual consistência. Os serviços em nuvem funcionam dessa maneira e o Simple DB da Amazon usa consistência eventual.

Os recursos ACID são geralmente aplicados aos bancos de dados relacionais. Se você deseja aplicar o ACID de maneira distribuída (banco de dados distribuído), o ACID usa 2PC (confirmação de duas fases) para forçar a consistência entre as partições. No entanto, como o ACID fornece consistência e particionamento, a aplicação do teorema CAP (ambientes distribuídos) significa que a disponibilidade está comprometida.

Por esse motivo , é utilizado o BASE (basicamente disponível, estado flexível, eventualmente consistente) que pode fornecer níveis de escalabilidade que não podem ser obtidos com o ACID.

Espero que isto ajude.

Stefan M
fonte
-1

Em relação à consistência no teorema da PAC, Julian Brown escreve em seu artigo ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Um serviço que é consistente opera totalmente ou não. Gilbert e Lynch usam a palavra "atômica" em vez de consistente em suas provas, o que faz mais sentido tecnicamente porque, estritamente falando, consistente é o C no ACID aplicado às propriedades ideais das transações do banco de dados e significa que os dados nunca serão persistentes. quebra certas restrições predefinidas. Mas se você considerar uma restrição predefinida de sistemas distribuídos que vários valores para o mesmo dado não sejam permitidos, acho que o vazamento na abstração está obstruído (além disso, se o Brewer tivesse usado a palavra atômica, seria chamada de AAP teorema e estaríamos todos no hospital toda vez que tentássemos pronunciá-lo).

Assim, o C no CAP corresponderia ao A no ACID.

Com Gilbert e Lynch, ele se refere ao artigo "Seth Gilbert e Nancy Lynch: conjectura de Brewer e a viabilidade de serviços da Web consistentes, disponíveis e tolerantes a partições"

white_gecko
fonte
11
A consistência do CAP se aplica a um sistema distribuído, enquanto o ACID se abstrai desse nível da arquitetura do sistema. A consistência da PAC pode ser necessária para a implementação da atomicidade do ACID, mas não é a mesma coisa.
mustaccio
Como o próprio Brewer coloca seu teorema da CAP em relação ao ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Page 2 & 3), acho perfeitamente válido examinar mais profundamente a correlação entre os ambos.
white_gecko