Gerenciando disponibilidade em nosql

Tal como acontece com outros tipos de bancos de dados NoSQL, com lojas de valor-chave, você pode trocar alguma consistência para alguma disponibilidade. lojas de valor de chave normalmente fornecem uma ampla gama de modelos de consistência e durabilidade - ou seja, entre disponibilidade e tolerância a partição e entre a tolerância consistente e partição.

Algumas lojas de chave-valor ir muito mais longe no braço consistência, abandonando base para suporte completo consistência transacional ACID. Compreender onde traçar a linha pode ajudar a reduzir a lista de bancos de dados potenciais a considerar para o seu caso de uso.

consistência negociação

lojas de valor Key tipicamente comércio consistência nos dados (isto é, a capacidade de ler sempre a cópia mais recente de um valor imediatamente após uma atualização), a fim de melhorar o tempo de gravação.

Voldemort, Riak, e Oracle NoSQL são todos eventualmente, consistente lojas de chave-valor. Eles usam um método chamado leia reparação. Aqui estão as duas etapas envolvidas na leia reparação:

  1. No momento da leitura de um disco, determinar qual dos vários valores disponíveis para a chave é a mais recente e válido por um.

  2. Se o valor mais recente não pode ser decidido, então o cliente de banco de dados é apresentado com todas as opções de valor e é deixado para decidir por si mesmo.

Bons exemplos para usar lojas de chave-valor, eventualmente consistentes incluem o envio de mensagens de mídia social e entregar anúncios para usuários-alvo. Se um tweet chega tarde ou uma propaganda de cinco minutos de idade, é mostrado, não há nenhuma perda catastrófica de dados.

suporte Implementando ACID

Aerospike e Redis são notáveis ​​excepções a consistência eventual. ambos uso compartilhado nada aglomerados, o que significa que cada tecla tem o seguinte:



  • Um nó mestre: Apenas os mestres fornecer respostas para uma única chave, o que garante que você tem a cópia mais recente.

  • Vários nós de réplica escravo: Estes contêm cópias de todos os dados sobre um nó mestre. Aerospike fornece completa ACID consistência transacional, permitindo modificações para ser liberado imediatamente para o disco antes da transação ser marcada como completa para o cliente de banco de dados.

    Video: SQL com Alta Disponibilidade (Sem Cluster)

Aerospike consegue fazer isso em velocidades muito altas (que refuta alegações de que ter ACID diminui velocidade de gravação). Aerospike nativamente lida com SSDs brutos para dados em escrita, ignorando suporte sistema de arquivos sistemas operacionais mais lentas.

Claro, mais SSDs significa custos de servidor mais elevados. Você pode decidir que o uso de Redis (configurado para limpar todos os dados no disco que chega) é rápido o suficiente e garante durabilidade suficiente para suas necessidades. A configuração padrão no Redis é esvaziar dados para o disco a cada poucos segundos, deixando uma pequena janela de potencial perda de dados se um servidor falhar.

Aqui estão alguns exemplos de quando você pode precisar de uma loja de key-value ACID-compliant:

  • Ao receber dados 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 / assinatura, que atua como um back-end servidor de mensagens. Esta característica, combinada com o apoio ACID permite mensagens durável.


Publicações relacionadas