p de Podcast

ACID, BASE e o Teorema CAP


Listen Later

ACID ou BASE, qual escolher? Conhece o teorema CAP? Neste episódio falamos sobre as propriedades destes dois modelos transacionais.


Marcio  
https://twitter.com/marciofrayze

Julianno
https://twitter.com/juliannoms

Links:

Artigo "ACID vs. BASE: What are the differences?"

https://phoenixnap.com/kb/acid-vs-base

Teorema CAP:

https://en.wikipedia.org/wiki/CAP_theorem

https://dzone.com/articles/understanding-the-cap-theorem

https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html

https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/


Modelo ACID

    Atômico – Cada transação é devidamente realizada ou o processo para e o banco de dados volta para o estado antes do início da transação (rollback), garantindo que todos os dados no banco de dados sejam válidos.

    Consistente – Uma transação processada nunca colocará em risco a integridade estrutural do banco de dados. A transação cria um novo estado válido tanto para a estrutura como para os dados ou reverte para o estado anterior.

    Isolado – As transações não podem comprometer a integridade de outras transações interagindo com elas enquanto ainda estão em andamento.

    Durável – Os dados relacionados à transação concluída persistirão mesmo nos casos de quedas de rede ou energia. Se uma transação falhar, ela não afetará os dados manipulados.

Modelo BASE

    Basically Available – Em vez de impor consistência imediata, os bancos de dados BASE garantirão a disponibilidade de dados espalhando-os e replicando-os nos nós do cluster de banco de dados.

    Soft State – Devido à falta de consistência imediata, os valores dos dados podem ser diferentes dependendo do nó que atender a requisição.

    Eventually Consistent – O fato de não impor consistência imediata não significa que ela nunca a alcance. No entanto, até que isso ocorra, as leituras de dados ainda são possíveis (mesmo que não reflitam a realidade mais atual).


Teorema CAP

    Eric Brewer provou que em um modelo distribuído de armazenamento você só consegue atender simultaneamente duas de três opções:

    Consistência (C): Cada leitura recebe a gravação mais recente ou um erro.

    Disponibilidade (A): Cada solicitação recebe uma resposta de sucesso, sem a garantia de que contém a gravação mais recente.

    Tolerância à partição (P): O sistema continua a operar apesar de um número arbitrário de mensagens sendo retiradas (ou atrasadas) pela rede entre nós.

    Na prática você precisará ter suporte a tolerância a partição, então a escolha se resume a: quando ocorre um particionamento na rede, o que você quer priorizar: consistência ou disponibilidade?


...more
View all episodesView all episodes
Download on the App Store

p de PodcastBy Marcio Frayze David e Julianno Martins Silva