rqlite, um excelente SGBD relacional distribuído e leve

Si você está procurando um DBMS distribuído que usa SQLite como um mecanismo de armazenamento, deixe-me dizer-lhe que rqlite é o único para você, pois permite organizar o trabalho de um cluster a partir de armazenamentos sincronizados.

Dos recursos do rqlite, facilidade de instalação, implementação e manutenção é destacada de armazenamento distribuído tolerante a falhas, que é um pouco semelhante ao etcd e Consul, mas usa um modelo de dados relacional em vez de um formato de chave / valor.

Sobre o rqlite

O algoritmo de consenso Raft é usado para manter todos os nós em sincronia. Rqlite use a biblioteca SQLite original e o driver go-sqlite3, além de executar uma camada que processa as solicitações dos clientes, se replica em outros nós e acompanha o consenso alcançado na escolha do nó principal.

Mudanças no banco de dados só podem ser feitas pelo nó selecionado como líder, mas as conexões com operações de gravação podem ser direcionadas para outros nós do cluster, que retornarão o endereço do líder para repetir a solicitação (na próxima versão, eles prometem adicionar encaminhamento automático da chamada para o líder).

O foco principal é a tolerância a falhas, então o SGBD escala apenas em operações de leitura, e as operações de gravação são o gargalo. É possível executar um cluster rqlite a partir de um único nó e tal solução pode ser usada para fornecer acesso ao SQLite sobre HTTP sem fornecer tolerância a falhas.

Dados SQLite em cada nó eles não são armazenados em um arquivo, mas na memória. No nível da camada, com a implementação do protocolo Raft, é mantido um registro de todos os comandos SQLite que levam a uma alteração no banco de dados.

Este registro é usado para replicação (replicação no nível de repetição da consulta para outros nós), ao iniciar um novo nó ou para se recuperar de uma perda de conectividade.

Para reduzir o tamanho do registro, é usado o empacotamento automático, que começa após um determinado número de alterações e leva à confirmação de um instantâneo, contra o qual um novo registro começa (o estado do banco de dados na memória é idêntico ao instantâneo + log de alterações acumuladas).

Dos recursos do rqlite:

  • Fácil implantação de cluster, sem a necessidade de uma instalação separada do SQLite.
  • Capacidade de obter rapidamente armazenamento SQL replicado.
  • Pronto para uso em projetos de produção.
  • Disponibilidade da API HTTP (S), que permite atualizar os dados em lote e determinar o nó líder do cluster. Uma interface de linha de comando e bibliotecas de cliente para várias linguagens de programação também são fornecidas.
  • A presença de um serviço para definir outros nós que permite criar clusters dinamicamente.
  • Suporte para criptografia de troca de dados entre nós.
  • A capacidade de personalizar o nível de verificação de relevância e consistência dos dados durante a leitura.
  • Capacidade opcional de conectar nós somente leitura que não participam da determinação de consenso e são usados ​​para aumentar a escalabilidade do cluster para operações de leitura.
  • Suporte para a forma nativa de transações com base na combinação de comandos em uma única solicitação (transações baseadas em BEGIN, COMMIT, ROLLBACK, SAVEPOINT e RELEASE não são suportadas).

Sobre o rqlite 6.0

A nova versão apresenta mudanças arquitetônicas significativas destinadas a melhorar a confiabilidade do cluster melhorando o processo de direcionar solicitações de leitura e gravação para os nós de cluster corretos.

Nós Rqlite agora pode multiplexar múltiplas conexões lógicas entre eles usando as conexões TCP estabelecidas entre os nós pelo protocolo Raft. Se a solicitação requer a autoridade do nó líder, mas é enviada ao nó secundário, o nó secundário pode determinar o endereço do líder e transmiti-lo ao cliente, sem realizar o cálculo do consenso da Balsa.

A mudança também removeu o componente separado para sincronizar metadados e removeu o tratamento separado de status e metadados do Raft.

Os nós secundários agora enviam solicitações ao nó principal apenas quando necessário, quando é necessário descobrir o endereço do nó principal. A API fornece a capacidade de obter informações sobre o status de outros nós no cluster. Comando Sysdump adicionado ao CLI.

Finalmente se você estiver interessado em saber mais sobre isso ou consulte as instruções de instalação e manual do usuário, você pode fazê-lo no link abaixo.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.