Lar Finanças Pessoais Manipulando Partições no NoSQL - dummies

Manipulando Partições no NoSQL - dummies

Índice:

Vídeo: Common design patterns with Azure Cosmos DB | Azure Friday 2024

Vídeo: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Anonim

A palavra partição é usada para dois conceitos diferentes no campo NoSQL. Uma partição de dados é um mecanismo para garantir que os dados sejam distribuídos uniformemente em um cluster. Por outro lado, uma partição de rede ocorre quando duas partes do mesmo cluster de banco de dados não podem se comunicar.

Em sistemas de cluster muito grandes, é cada vez mais provável que uma falha de uma peça de equipamento aconteça. Se uma alternância de rede entre servidores em um cluster falhar, ocorre um fenômeno referido como (no jargão do computador) split brain . Nesse caso, os servidores individuais ainda estão recebendo solicitações, mas não podem se comunicar entre si.

Este cenário pode levar à inconsistência de dados ou simplesmente a capacidade reduzida no armazenamento de dados, uma vez que a partição de rede com o mínimo de servidores é removida do cluster (ou "votou off" na verdadeira moda Big Brother).

Tolerando partições

Você tem duas opções quando ocorre uma partição de rede:

  • Continuar, em algum nível, para atender operações de leitura e gravação.

  • "Vote off" uma parte da partição e decide corrigir os dados mais tarde, quando ambas as partes se comunicarem. Isso geralmente envolve o cluster de votação de uma réplica de leitura como o novo mestre para cada nó de partição mestre faltando.

O Riak permite que você determine a quantidade de vezes que os dados são replicados (três cópias, por padrão - ou seja, n = 3) e quantos servidores devem ser consultados para que uma leitura seja bem-sucedida. Isso significa que, se o mestre primário de uma chave estiver no lado errado de uma partição de rede, as operações de leitura ainda podem ser bem sucedidas se os outros dois servidores estiverem disponíveis (ou seja, r = 2 disponibilidade de leitura).

O Riak identifica quando o servidor de partição primário desce usando um sistema chamado hinted handoff . Quando os dados são originalmente replicados, o primeiro nó para uma partição de chave específica é gravado, juntamente com (por padrão) dois dos seguintes nós vizinhos.

Se o primário não puder ser gravado, o próximo nó do anel está escrito. Essas escritas são efetivamente entregues ao próximo nó. Quando o servidor primário volta, as gravações são reproduzidas nesse nó antes de assumir novamente as operações de gravação primária.

Em ambas as operações, as inconsistências de versão podem acontecer porque réplicas diferentes podem estar em estados de versão diferentes, mesmo que apenas por alguns milissegundos.

Riak emprega ainda outro sistema chamado ativo anti - entropia para aliviar esse problema. Este sistema arrasta valores atualizados e garante que as réplicas sejam atualizadas em algum ponto, de preferência, antes e depois.Isso ajuda a evitar conflitos ao ler enquanto mantém uma alta velocidade de ingestão, o que evita um commit de duas fases usado por outros bancos de dados do NoSQL com suporte de cluster master-slave, compartilhado-nada.

Se um conflito na leitura acontecer, Riak usa ler reparação para tentar retornar apenas os dados mais recentes. Eventualmente, porém, e dependendo das configurações de consistência e disponibilidade que você usa, o aplicativo cliente pode ser apresentado com várias versões e pediu para decidir por si mesmo.

Em algumas situações, essa compensação é desejável, e muitas aplicações podem intuitivamente saber, com base nos dados apresentados, qual versão usar e qual versão descartar.

Indicação secundária

Os índices secundários são índices sobre dados específicos dentro de um valor. A maioria das lojas de valores-chave deixa essa indexação até o aplicativo. No entanto, Riak é diferente, empregando um esquema chamado documento - baseado em particionamento que permite a indexação secundária.

O particionamento baseado em documento assume que você está escrevendo estruturas JSON no banco de dados Riak. Em seguida, você pode configurar índices em propriedades específicas do nome nesta estrutura JSON, conforme mostrado:

{"order-id": 5001, "id do cliente": 1429857, "data da ordem": "2014-09-24 "," Total ": 134. 24}

Se você tiver um aplicativo que esteja mostrando as ordens de um cliente para o mês anterior, então você deseja consultar todos os registros, como mostrado, onde o ID do cliente é um valor fixo (1429857) e a data do pedido está dentro de um intervalo específico (o início e o final do mês).

Na maioria das lojas de valor-chave, você cria outro balde cuja chave é o número e o mês combinados do cliente e o valor é uma lista de ids de pedidos. No entanto, na Riak, você simplesmente adiciona um índice secundário tanto no ID do cliente (número inteiro) como na data da ordem (data), que ocupa espaço de armazenamento extra, mas tem a vantagem de ser transparente para o desenvolvedor do aplicativo.

Esses índices também são atualizados ao vivo - significando que não há intervalo entre a atualização de um valor de documento no Riak e os índices atualizados. Este acesso ao dado em tempo real é mais difícil de retirar do que parece. Afinal, se os índices forem inconsistentes, você nunca encontrará os dados consistentemente mantidos!

Avaliando Riak

Basho, a entidade comercial por trás da Riak, diz que a próxima versão 2. 0 O banco de dados NoSQL sempre tem consistência forte, uma reivindicação que outros fornecedores do NoSQL produzem. A reivindicação dos fornecedores do NoSQL para sempre ter uma consistência forte é como reivindicar ser um vegetariano forte … exceto aos domingos quando você está com carne assada.

O Riak não é um banco de dados compatível com ACID. Sua configuração não pode ser alterada de modo que ela seja executada no modo de conformidade ACID. Os clientes podem obter dados inconsistentes durante operações normais ou durante partições de rede. A Riak comercializa consistência absoluta para maior disponibilidade e tolerância de partição.

A execução do Riak no modo de consistência forte significa que suas réplicas de leitura são atualizadas ao mesmo tempo que o mestre primário. Isso envolve um commit de duas fases - basicamente, o nó mestre escrevendo para os outros nós antes de confirmar que a gravação está completa.

No momento desta escrita, o modo de consistência forte da Riak não suporta índices secundários ou tipos de dados complexos (por exemplo, JSON). Espero que Basho conserte esse problema nos próximos lançamentos do banco de dados.

Riak Search (um mecanismo de pesquisa Apache Solr rebranded e integrado usa um modelo de atualização eventualmente consistente) pode produzir falsos positivos ao usar consistência forte. Esta situação ocorre porque os dados podem ser escritos e, em seguida, a transação abandonada, mas os dados ainda são usados ​​para indexação - deixando um resultado de busca "falso positivo" - o resultado não é mais válido para a consulta de pesquisa.

O Riak também usa um processo sentinela separado para determinar qual nó se torna um mestre em condições de failover. Este processo, no entanto, não está altamente disponível, o que significa que, por alguns segundos, é possível que, enquanto uma nova cópia do processo sentinela for colocada on-line, um novo nó não pode ser adicionado ou um novo mestre eleito. Você precisa estar ciente dessa possibilidade em condições de failover de alto estresse.

A Riak possui alguns recursos agradáveis ​​para desenvolvedores de aplicativos, como indexação secundária e suporte de valor JSON incorporado. A replicação de banco de dados para recuperação de desastres para outros datacenters está disponível apenas na versão paga, cujo preço pode ser encontrado em seu site (preços de aluguel mostrados, preços de licenças perpétuas fornecidos apenas no pedido).

A ferramenta de monitoramento do cluster Riak Control também não é altamente considerada por causa de seu tempo de atraso ao monitorar clusters. A Riak tem muitas promessas e, se a Basho adicionar mais empresa - nível instalações de gerenciamento de cluster em versões futuras, ela se tornará um produto de primeira classe.

Manipulando Partições no NoSQL - dummies

Escolha dos editores

ASVAB Paragraph Comprehension Practice - dummies

ASVAB Paragraph Comprehension Practice - dummies

Um dos subtestes que você verá no ASVAB é o teste de compreensão de parágrafos. Esta parte do ASVAB está voltada para ver se você entende o que você lê. Exemplo de perguntas Parágrafo Tempo de compreensão: 13 minutos para 15 perguntas Instruções: A compreensão de parágrafo é o quarto subtesto no ASVAB. As perguntas são projetadas para ...

ASVAB Preparação: Números positivos e negativos - manequins

ASVAB Preparação: Números positivos e negativos - manequins

Certifique-se de que esteja familiarizado com o trabalho positivo e negativo números para o ASVAB. Os números podem ser positivos ou negativos. Um número positivo é qualquer número maior que zero. Então, 4; 3. 2; 793; 3/4; 1/2; e 430, 932, 843, 784 são todos números positivos. Números inferiores a zero são números negativos. Cada número positivo tem um negativo ...

ASVAB Dicas de compreensão de leitura - manequins

ASVAB Dicas de compreensão de leitura - manequins

As abordagens de compreensão de parágrafo no ASVAB geralmente são bastante curtas. Essas dicas podem ajudá-lo a compreender melhor as passagens de leitura ASVAB e as perguntas que as seguem: Compreenda o que a questão quer de você. Solicita o ponto principal, informações específicas ou uma conclusão baseada na informação apresentada? Releia o parágrafo ...

Escolha dos editores

A diferença entre análises analógicas e digitais - manequins

A diferença entre análises analógicas e digitais - manequins

Toda a eletrônica pode ser dividida em duas grandes categorias: analógico e digital. Um dos exemplos mais comuns da diferença entre dispositivos analógicos e digitais é um relógio. No relógio analógico, o tempo é representado por mãos que giram ao redor de um disco e apontam para uma localização no mostrador que representa ...

O papel dos átomos na eletrônica - dummies

O papel dos átomos na eletrônica - dummies

Os átomos são os blocos de construção básicos de tudo no universo, seja natural ou manmade. Eles são tão pequenos que você encontraria milhões deles em uma única partícula de poeira. A corrente elétrica, às vezes conhecida como eletricidade, é o movimento na mesma direção de partículas microscópicamente pequenas e eletricamente carregadas, chamadas elétrons. Cada átomo contém o ...

Roles de prótons e elétrons - dummies

Roles de prótons e elétrons - dummies

É Uma propriedade de certas partículas, como elétrons, prótons , e quarks (sim, quarks) que descreve como eles interagem uns com os outros. Existem dois tipos diferentes de carga elétrica, um pouco arbitrariamente chamada positiva e negativa (bem como as quatro direções cardinais são chamadas norte, sul, leste e oeste). Em geral, partículas que carregam ...

Escolha dos editores

Acesso 2007 All-In-One For Dummies Cheat Sheet - dummies

Acesso 2007 All-In-One For Dummies Cheat Sheet - dummies

Trabalhando no Access 2007 é mais fácil uma vez que você entenda executar a janela do Access 2007 e usar ferramentas para ajudar a gerenciar seus dados e responder suas perguntas.

Arrumando suas mensagens com o Lotus Notes 6 - manequins

Arrumando suas mensagens com o Lotus Notes 6 - manequins

Antes de enviar uma mensagem de e-mail no Lotus Notes 6, você pode definir Opções de entrega, Opções de segurança e Selos de humor. Use essas dicas de notas para informar o destinatário sobre o quão quente é sua mensagem ou qual é o seu humor; ou solicitar confirmação de entrega, definir o tempo de entrega e muito mais. Depois de terminar de compor o corpo ...

10 Ofícios de teclado do Office 2016 - dummies

10 Ofícios de teclado do Office 2016 - dummies

Um tema comum do Office 2016 é que todos os programas se parecem e funcionam. Depois de aprender a usar o Word, você achará que não é muito mais difícil aprender o Excel ou o PowerPoint porque as guias do Ribbon funcionam de maneiras semelhantes. Ainda melhor, os mesmos comandos de teclas funcionam de forma semelhante em todos os programas do Office 2016. Por ...