Índice:
Vídeo: Administrando servidores com facilidade 2024
Como com outros tipos de banco de dados NoSQL, com lojas de valor-chave, você pode trocar alguma consistência por alguma disponibilidade. As lojas de valor-chave geralmente fornecem uma ampla gama de modelos de consistência e durabilidade - isto é, entre disponibilidade e tolerância de partição e entre tolerância consistente e de partição.
Algumas lojas de valor-chave vão muito mais longe no braço de consistência, abandonando BASE para suporte de consistência transacional ACID completo. Compreender onde desenhar a linha pode ajudá-lo a encurtar a lista de bancos de dados em potencial para considerar o caso de uso.
consistência de negociação
As lojas de valores-chave geralmente comercializam consistência nos dados (ou seja, a capacidade de ler sempre a última cópia de um valor imediatamente após uma atualização) para melhorar os tempos de escrita.
Voldemort, Riak e Oracle NoSQL são todas eventualmente consistentes lojas de valores-chave. Eles usam um método chamado read repair . Aqui estão os dois passos envolvidos em ler reparação :
-
No momento da leitura de um registro, determine qual dos vários valores disponíveis para uma chave é o mais recente e mais válido.
-
Se o valor mais recente não puder ser decidido, o cliente do banco de dados é apresentado com todas as opções de valor e deixa-se decidir por si mesmo.
Os bons exemplos para o uso de lojas de valor-chave eventualmente consistentes incluem o envio de postagens de redes sociais e a entrega de s para usuários direcionados. Se um tweet chegar atrasado ou um exemplo de cinco minutos, não há perda catastrófica de dados.
Implementando o suporte ACID
Aerospike e Redis são excepções notáveis para a eventual consistência. Ambos usam compartilhado-nada clusters, o que significa que cada chave tem o seguinte:
-
Um nó mestre: Somente os mestres fornecem respostas para uma única chave, o que garante que você tenha a cópia mais recente.
-
Múltiplos nós de réplica de escravos: Estes contêm cópias de todos os dados em um nó mestre. Aerospike fornece consistência transacional ACID completa, permitindo que as modificações sejam liberadas imediatamente para o disco antes que a transação seja sinalizada como completa para o cliente do banco de dados.
Aerospike consegue fazer isso a velocidades muito altas (o que refuta as alegações de que o ACID diminui a velocidade de gravação). Aerospike manipula nativo SSDs cruciais para a escrita de dados, ignorando o suporte ao sistema de arquivos dos sistemas operacionais mais lentos.
Claro, mais SSDs significam custos de servidores mais elevados. Você pode decidir que o uso do Redis (configurado para descarregar todos os dados no disco à medida que ele chega) é rápido o suficiente e garante uma durabilidade suficiente para suas necessidades.A configuração padrão em Redis é liberar dados para o disco a cada poucos segundos, deixando uma pequena janela de perda de dados em potencial se um servidor falhar.
Aqui estão alguns exemplos de quando você pode precisar de uma loja de valor-chave compatível com ACID:
-
Ao receber os dados do sensor que você precisa para uma experiência.
-
Em um sistema de mensagens onde você deve garantir o recebimento.
Redis, por exemplo, fornece um mecanismo de publicação / inscrição que atua como um back-end do servidor de mensagens. Este recurso combinado com o suporte ACID permite mensagens duráveis.