E foi lançado o Rqlite 7 com um novo serviço de descoberta de nós, e mais. Confira as novidades e veja como instalar no Linux.
O Rqlite é um banco de dados relacional distribuído, leve e fácil de usar, que usa o SQLite como seu mecanismo de armazenamento. Ele é simples de implantar, operar e permite organizar o funcionamento de um cluster a partir de armazenamentos sincronizados entre si.
Dos recursos do Rqlite, destaca-se que é fácil de instalar, implementar e manter armazenamento distribuído tolerante a falhas, um pouco semelhante ao etcd e Consul, mas usando um modelo de dados relacional em vez de um formato de chave/valor.
O algoritmo de consenso do Raft é usado para manter todos os nós sincronizados.
O Rqlite usa a biblioteca SQLite original e o driver go-sqlite3, além de executar uma camada que processa solicitações de clientes, executa replicação para outros nós e monitora o consenso na eleição do nó líder.
As alterações do banco de dados só podem ser feitas pelo nó selecionado como líder, mas as conexõ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.
A ênfase principal está na tolerância a falhas, de modo que o DBMS é dimensionado apenas em leituras e gravações que são o gargalo.
É possível executar um cluster rqlite a partir de um único nó e essa solução pode ser usada para fornecer acesso ao SQLite sobre HTTP sem fornecer tolerância a falhas.
Os dados SQLite em cada nó 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 log de todos os comandos SQLite que levam a uma alteração do banco de dados.
Esse log é usado para replicação (replicação em nível de repetição para outros nós), ao iniciar um novo nó ou para recuperar-se de uma perda de conectividade.
Para reduzir o tamanho do log, é usado o empacotamento automático, que começa após um número especificado de alterações e leva à confirmação de um instantâneo, em conexão com o qual um novo log é iniciado (o estado do banco de dados na memória é idêntico ao instantâneo + changelog acumulado).
Recentemente, foi anunciado o lançamento do SGBD distribuído Rqlite 7.0.
Novidades do Rqlite 7
Rqlite 7.0 apresenta uma nova integração de descoberta de nós com Consul e etcd.
O uso de um desses sistemas com o rqlite torna o clustering automático do rqlite muito mais fácil, além do modo de descoberta herdado não ter suporte na versão 7.0, mas pode ser em uma versão futura.
Nesta nova versão que se apresenta podemos constatar que foi adicionado suporte para o agrupamento automático de rqlite utilizando um novo serviço de descoberta de nós que pode ser executado no armazenamento distribuído do Consul e etcd.
Como tal, o serviço permite que os nós rqlite sejam encontrados automaticamente: o administrador só precisa executar vários nós em servidores diferentes, especificando o endereço comum do cluster Consul ou etcd (por exemplo, “example.com:8500”) e os nós serão agrupados automaticamente. .
O nó líder atualiza periodicamente suas informações de endereço no armazenamento Consul ou etcd, permitindo que você altere o líder no futuro sem reconfigurar os nós restantes e adicione novos nós mesmo após a alteração do líder.
Outra mudança notável é que o suporte para o antigo serviço Discovery Mode desenvolvido pelo AWS Lambda foi descontinuado.
Além disso na interface CLI, é permitido especificar vários hosts ao mesmo tempo: se o primeiro nó não estiver disponível, os seguintes hosts serão contatados.
Também foi observado que o código retrabalhado para analisar os argumentos da linha de comando rqlited e que o pacote protobuf obsoleto foi obsoleto.
Enquanto o armazenamento BoltDB usado na implementação do protocolo Raft foi substituído pelo bbolt, um fork do projeto etcd.
Para saber mais sobre essa versão do Rqlite, acesse a nota de lançamento.
Como instalar ou atualizar o Rqlite
Para baixar e iniciar o rqlite, execute os seguintes comando em um terminal:
curl -L https://github.com/rqlite/rqlite/releases/download/v7.0.0/rqlite-v7.0.0-linux-amd64.tar.gz -o rqlite-v7.0.0-linux-amd64.tar.gz
tar xvfz rqlite-v7.0.0-linux-amd64.tar.gz
cd rqlite-v7.0.0-linux-amd64
./rqlited ~/node.1