Explicação da terminologia BASE

170

O acrônimo BASE é usado para descrever as propriedades de determinados bancos de dados, geralmente bancos de dados NoSQL. É frequentemente referido como o oposto de ACID .

Existem apenas alguns artigos que abordam os detalhes do BASE, enquanto o ACID possui diversos artigos que elaboram cada uma das propriedades de atomicidade, consistência, isolamento e durabilidade. A Wikipedia dedica apenas algumas linhas ao termo.

Isso me deixa com algumas perguntas sobre a definição :

B asically Um vailable, S oft estado, E consistência ventual

Interpretei essas propriedades da seguinte maneira, usando este artigo e minha imaginação:

Basicamente disponível pode se referir à disponibilidade percebida dos dados. Se um único nó falhar, parte dos dados não estará disponível, mas toda a camada de dados permanecerá operacional.

  • Essa interpretação está correta ou se refere a outra coisa?
  • Atualização: deduzindo da resposta de Mau , isso poderia significar que toda a camada de dados está sempre aceitando novos dados, ou seja, não há cenários de bloqueio que impeçam a inserção imediata de dados?

Estado suave : Tudo o que pude encontrar foi o conceito de dados que precisavam de uma atualização de período. Sem uma atualização, os dados expiram ou são excluídos.

  • A exclusão automática de dados em um banco de dados parece estranha para mim.
  • Dados expirados ou obsoletos fazem mais sentido. Mas esse conceito se aplicaria a qualquer tipo de armazenamento de dados redundantes, não apenas ao NoSQL. Descreve outra coisa então?

A consistência eventual significa que as atualizações acabarão se propagando para todos os servidores, com tempo suficiente.

  • Esta propriedade é clara para mim.

Alguém pode explicar essas propriedades em detalhes?

Ou é apenas um acrônimo rebuscado e sem sentido que se refere aos conceitos de ácidos e bases encontrados na química?

Niels van der Rest
fonte

Respostas:

194

O acrônimo BASE foi definido por Eric Brewer , que também é conhecido por formular o teorema da PAC .

O teorema da CAP afirma que um sistema de computador distribuído não pode garantir todas as três propriedades a seguir ao mesmo tempo:

  • Consistência
  • Disponibilidade
  • Tolerância de partição

Um sistema BASE desiste da consistência.

  • Basicamente disponível indica que o sistema faz a disponibilidade de garantia, em termos do teorema CAP.
  • O estado suave indica que o estado do sistema pode mudar com o tempo, mesmo sem entrada. Isso ocorre devido ao eventual modelo de consistência.
  • A consistência eventual indica que o sistema se tornará consistente ao longo do tempo, uma vez que o sistema não recebe entrada durante esse período.

Brewer admite que o acrônimo é artificial :

Eu inventei a sigla [BASE] com meus alunos no escritório deles no início daquele ano. Concordo que é um pouco artificial, mas também o "ÁCIDO" - muito mais do que as pessoas imaginam, então achamos que era bom o suficiente.

Niels van der Rest
fonte
33
Basicamente disponível NÃO garante disponibilidade. significa que está disponível principalmente, mas os servidores podem ficar inativos por vários motivos.
DarthVader
@ Neil, o ACID renuncia à disponibilidade ou à tolerância de patições?
Pacerier
@Pacerier, é aí que o teorema do CAP começa a mostrar suas falhas :) Se o sistema garantir a tolerância da partição, sacrificará a disponibilidade no caso de uma partição. Se o sistema garantir disponibilidade, desiste da tolerância da partição, o que significa que uma partição tornará o sistema indisponível (ou inconsistente). Assim, você pode ver que 'disponibilidade' e 'tolerância de partição' andam de mãos dadas. Há mais detalhes sobre isso neste artigo .
Niels van der Rest
1
Não cientificamente, mas pelas minhas observações, ao falar sobre serviços da Web, o ACID é mais frequentemente associado ao SOAP e o BASE é mais estreitamente afiliado aos serviços REST (RESTful). E para uma discussão mais detalhada sobre consistência Eventual, consulte o debate entre os apoiadores do MongoDB e do CouchDB.
charles ross
O "teorema" do CAP é dissecado matematicamente (mas de maneira muito legível) e discutido de uma maneira exclusivamente inteligente por Mark Burgess , cujo artigo estou lendo em andamento. (Eu estava ligado lá em primeiro lugar pela Wikipedia .) #
Wildcard
45

Tem a ver com BASE : o tipo BASE jumper está sempre Basicamente Disponíveis (para novos relacionamentos), em um estado Soft (nenhum de seu relacionamento durar muito tempo) e, eventualmente consistente (um dia ele vai se casar).

Mau
fonte
Ok, então você está dizendo que os bancos de dados ACID são muito melhores que o BASE?
Pacerier
2
Ao contrário, o BASE é sempre mais divertido.
Mau
8
Bem, esse é realmente meu pão diário e, se você quer uma resposta séria, ACID.
Mau
1
O @Pacerier Eric Brewer cunhou o termo BASE, indicando que, embora os bancos e instituições financeiras falem sobre restrições de ACID, na realidade, eles não estão falando estritamente ( highscalability.com/blog/2013/5/1/… )
e
2
@Pacerier e Mau, e o NewSQL? Você escolheria entre NoSQL (BASE) e relacional (ACID)?
Boris Mocialov 01/05/19
6
  • Disponibilidade básica : o banco de dados parece funcionar a maior parte do tempo.

  • Estado suave : as lojas não precisam ser consistentes com gravação ou consistentemente mutuamente o tempo todo.

  • Consistência eventual : os dados devem sempre ser consistentes, com relação à maneira como qualquer número de alterações é realizado.

MANISH PRIYADARSHI
fonte
4

ACID e BASE são modelos de consistência para RDBMS e NoSQL, respectivamente. As transações de ACID são muito mais pessimistas, ou seja, estão mais preocupadas com a segurança dos dados. No mundo dos bancos de dados NoSQL, as transações ACID estão menos na moda, pois alguns bancos de dados diminuíram os requisitos de consistência imediata, atualização e precisão dos dados para obter outros benefícios, como escalabilidade e resiliência.

BASE significa -

  • Disponibilidade básica - o banco de dados parece funcionar a maior parte do tempo.
  • Estado suave - As lojas não precisam ser consistentes com gravação, nem réplicas diferentes precisam ser mutuamente consistentes o tempo todo.
  • Consistência eventual - as lojas exibem consistência em algum momento posterior (por exemplo, preguiçosamente no momento da leitura).

Portanto, o BASE relaxa a consistência para permitir que o sistema processe a solicitação mesmo em um estado inconsistente.

Exemplo : ninguém se importaria se o tweet deles fosse inconsistente na rede social por um curto período de tempo. É mais importante obter uma resposta imediata do que ter um estado consistente das informações dos usuários.

Pujan Srivastava
fonte
1
A consistência eventual tem realmente um impacto indesejado. Você já experimentou a desaceleração do bate-papo no LinkedIn. Você responde com uma frase e responde com outra. Em seguida, devido à consistência eventual ou à falta de implementação adequada, você termina com as duas respostas juntas. Sim, no final, você recebeu 2 respostas no bate-papo, mas elas não estão na ordem desejada.
zmechanic em 21/02
2

Para adicionar às outras respostas, acho que as siglas foram derivadas para mostrar uma escala entre os dois termos para distinguir quão confiáveis ​​transações ou solicitações estavam entre RDMS e Big Data.

Deste artigo acid vs base

Em Química, o pH mede a basicidade e a acidez relativas de uma solução aquosa (solvente na água). A escala de pH se estende de 0 (substâncias altamente ácidas, como o ácido da bateria) a 14 (substâncias altamente alcalinas, como a mentira); a água pura a 25 ° C (77 ° F) tem um pH de 7 e é neutra.

Os engenheiros de dados emprestaram habilmente ácido x base de químicos e criaram siglas que, embora não sejam exatas em seus significados, ainda são representações adequadas do que está acontecendo em um determinado sistema de banco de dados ao discutir a confiabilidade do processamento de transações.

Outro ponto, já que trabalho com Big Data usando o Elasticsearch. Para esclarecer, uma instância do Elasticsearch é um nó e um grupo de nós forma um cluster.

Para mim, do ponto de vista prático, o BA (Basicamente Disponível), nesse contexto, tem a ideia de vários nós principais para lidar com o cluster do Elasticsearch e suas operações.

Se você tiver três nós principais e o nó principal de direção atualmente estiver inativo, o sistema permanecerá ativo, embora em um estado menos eficiente, e outro nó mestre ocupe o seu lugar como o principal nó mestre de direção. Se dois nós principais forem desativados, o sistema ainda permanecerá ativo e o último nó principal assumirá o controle.

James Drinkard
fonte
0

Pode ser apenas porque o ACID é um conjunto de propriedades que as substâncias apresentam (em Química) e o BASE é um conjunto de complemento delas. A consistência eventual do estado flexível 'foi decidida em sua forma completa.

siebenheaven
fonte
2
Isso pode explicar como o acrônimo veio a existir, mas não explica o que significam as várias propriedades .
Jmb
O uso de palavras como 'Basicamente', que nem sequer são significativas em termos de significado, sugere que o acrônimo foi escolhido primeiro (ACID vs BASE) e, em seguida, as palavras foram encontradas para preencher as partes do acrônimo . Provavelmente é por isso que não encontramos tantas explicações e referências (em comparação com as palavras do ACID, explicações sobre as quais você pode encontrar em todas as páginas que falam sobre RDBMS) sobre o significado dessas palavras.
siebenheaven
Acho isso interessante, pois "Basicamente disponível" parece tão forçado.
Ricardo Pedroni