Bases de dados de grafos para iniciantes: ACID vs. BASE Explained
quando se trata de bases de dados NoSQL, modelos de consistência de dados podem às vezes ser muito diferentes dos utilizados por bases de dados relacionais (bem como bastante diferentes de outras lojas NoSQL).os dois modelos de consistência mais comuns são conhecidos pelos acrônimos ACID e BASE. Enquanto eles são muitas vezes colocados uns contra os outros em uma batalha pela vitória final (por favor, alguém faça um vídeo disso), ambos os modelos de consistência vêm com vantagens – e desvantagens – e nem sempre é um ajuste perfeito.
vamos dar uma olhada mais de perto nos trade-offs de ambos os modelos de consistência de banco de dados.
neste Bases de dados de gráficos para Iniciantes série de posts, eu vou levá-lo através dos princípios de gráfico de tecnologia supondo que você tem pouco (ou nenhum) de segundo plano no espaço. Nas últimas semanas, abordamos por que a tecnologia de grafos é o futuro, por que os dados conectados importam, o básico (e armadilhas) de modelagem de dados, por que uma linguagem de consulta de banco de dados importa, as diferenças entre linguagens de consulta imperativa e declarativa, modelagem preditiva usando a teoria dos grafos, os conceitos básicos de algoritmos de busca de grafos e por que precisamos de bases de dados NoSQL.esta semana, vamos dar uma olhada nas principais diferenças entre ACID e BASE de Dados Modelos de consistência e o que seus compromissos significam para suas transações de dados.
o modelo de consistência ácida
muitos desenvolvedores estão familiarizados com transações ácidas de trabalhar com bases de dados relacionais. Como tal, o modelo de consistência ácida tem sido a norma por algum tempo.a garantia do ácido chave é que ele fornece um ambiente seguro para operar em seus dados. O acrônimo ACID significa: Atomic Atomic
- All operations in a transaction succeed or every operation is rolled back.
consistente
- Após a conclusão de uma transacção, a base de dados é estruturalmente sólida.
isolado
- As transacções não se processam entre si. O acesso contencioso aos dados é moderado pela base de dados, de modo que as transações parecem correr sequencialmente.
durável
- os resultados da aplicação de uma transacção são permanentes, mesmo na presença de falhas.
propriedades ácidas significam que uma vez que uma transação está completa, seus dados são consistentes (tech lingo: write consistency) e estáveis no disco, que podem envolver múltiplos locais de memória distintos.a consistência de escrita é uma coisa maravilhosa para desenvolvedores de aplicativos, mas também requer bloqueio sofisticado que é tipicamente um padrão pesado para a maioria dos casos de uso.quando se trata de tecnologias NoSQL, a maioria das bases de dados de grafos (incluindo Neo4j) usam um modelo de consistência ácida para garantir que os dados são seguros e consistentemente armazenados.
the BASE Consistency Model
For many domains and use cases, ACID transactions are far more pessimistic (i.e., they are more worried about data safety) than the domain actually requires.no mundo do banco de dados NoSQL, as transações ácidas estão menos na moda, Já que algumas bases de dados têm afrouxado os requisitos de consistência imediata, frescura de dados e precisão, a fim de ganhar outros benefícios, como escala e resiliência.
(Notably, the .net-based RavenDB has buked the trend among aggregate stores in supporting ACID transactions.)
aqui está como o acrônimo BASE quebra:
disponibilidade básica
- a base de dados parece funcionar a maior parte do tempo.
Soft-state
- as lojas não têm de ser de escrita consistente, nem as réplicas diferentes têm de ser mutuamente consistentes o tempo todo.
eventual consistência
- armazena consistência em algum ponto posterior (por exemplo, preguiçosamente no tempo de leitura).
as propriedades de BASE são muito mais frouxas do que as garantias ácidas, mas não há um mapeamento direto de um para um entre os dois modelos de consistência (um ponto que provavelmente não pode ser exagerado).
a BASE data store values availability (since that’s important for scale), but it doesn’t offer guaranteed consistency of replicated data at write time. Em geral, o modelo de consistência de BASE fornece uma garantia menos rigorosa do que o ácido: os dados serão consistentes no futuro, seja em tempo de Leitura (por exemplo, Riak) ou será sempre consistente, mas apenas para certos snapshots passados processados (por exemplo, Datomic).o modelo de consistência BASE é usado principalmente por lojas agregadas, incluindo column family, key-value e document stores.
Navigating ACID vs. Base Trade-offs
Não há resposta certa para se a sua aplicação precisa de um modelo de consistência ácido versus base. Os desenvolvedores e arquitetos de dados devem selecionar seus compromissos de consistência de dados em uma base caso a caso-não baseado apenas no que está na moda ou que modelo foi usado anteriormente.dada a consistência frouxa da BASE, os desenvolvedores precisam ser mais informados e rigorosos sobre dados consistentes se eles escolherem uma BASE de armazenamento para sua aplicação. É essencial estar familiarizado com o comportamento básico de sua loja agregada escolhida e trabalhar dentro dessas restrições.por outro lado, o planejamento em torno das limitações de BASE pode às vezes ser uma grande desvantagem quando comparado com a simplicidade das transações ácidas. Um banco de dados totalmente ácido é o ajuste perfeito para casos de uso onde a confiabilidade e consistência dos dados são essenciais(bancário, alguém? ).nas próximas semanas vamos mergulhar em mais detalhes ácido/BASE quando se trata de agregar lojas e outras tecnologias de grafos.
Get your copy of the O’Reilly Graph Databases book and start using graph technology to solve real-world problems.
compre o Livro
Pegar o resto das Bases de dados de gráficos para Iniciantes série:
- Por que o Gráfico de Tecnologia É o Futuro
- o Porquê de Dados Ligados a Assuntos
- As Noções básicas de Modelagem de Dados
- Modelagem de Dados Armadilhas para Evitar
- Por que um Banco de dados Linguagem de Consulta Questões (Mais do Que Você Pensa)
- Imperativo vs. Declarativa de Linguagens de Consulta: Qual a Diferença?
- Teoria dos grafos & Modelagem Preditiva
- Graph Search o Algoritmo Básico
- Por que Precisamos de Bancos de dados NoSQL
- Um Passeio de Agregação Lojas
- Outro Gráfico Tecnologias de Dados
- Nativo vs. Não-Nativo Gráfico de Tecnologia