# ACID x BASE

ACID: Atomicity, Consistency, Isolation, Durability

- Conceito antigo e um dos mais importantes de SBDRs, cuja falta, os torna "não confiáveis".
- Atomicidade: transações devem ser feitas por completo ou não devem ser feitas, ou tudo ou nada.
- Consistência: somente dados válidos devem ser gravados, sem quebrar as regras.
- Isolamento: multiplas transações concorrentes não interferem umas nas outras.
- Durabilidade: dados "comitados" são dados perpetuados.

BASE: Basically Available, Soft state, Eventually consistent

- Conceito recente de BDDNR, que faz com que os problemas de disponibilidade e desempenho sejam melhor tratados.
- Basically Available: disponibilidade capaz de suportar falhas parciais sem comprometer todo o sistema.
- Soft State: .
- Eventually Consistent:

- conceito de sistemas distribuídos, onde os dados são replicados
- a última versão do dado está em algum nó no cluster e versões mais antigas em outros nós
- eventualmente todos os nós possuirão a última versão, ou seja
- banco eventualmente fica completamente em estado consistente.

Comentários

- A distributed data system is strongly consistent (ACID) or has some form of weak consistency (BASE)
- ACID is pessimistic (forces consistency at the end of every operation), BASE is optimistic (accepts that the database consistency will happen)
- Inconsistency can be tolerated for two reasons:

- for improving read/write performance under highly concurrent conditions and
- for avoiding partial system unavailability while updating data, even though the nodes are up and running.

- Scaling systems to dramatic transaction rates requires a new way of thinking about managing resources.
- The traditional transactional models are problematic when loads need to be spread across a large number of components.
- Decoupling the operations and performing them in turn provides for improved availability and scale at the cost of consistency
- Whether or not inconsistencies are acceptable depends on the client application.
- All replicas will converge to the same state eventually, i.e., when network connectivity has been re-established and enough time has elapsed.

Associado ao conceito de BASE, está o Teorema de CAP, seguem artigos

- Artigo: Teorema de CAP
- Artigo: Eventually Consistent
- Artigo: Problemas com o CAP Theorem
- Artigo: CAP Theorem on distributed systems
- Artigo: Insights on parallel and distributed Systems

Fontes:
  The ACID Model, Mike Chapple, About.com
  BASE: An Acid Alternative, Dan Pritchett, http://queue.acm.org
  Posts Tagged eventual consistency, http://devblog.streamy.com