Se você quer implementar um mecanismo de banco de dados SQL e replicado com alta disponibilidade, veja como instalar a biblioteca C para SQL Dqlite no Linux.
Recentemente, a Canonical anunciou o lançamento de uma versão importante do projeto Dqlite 1.0, que está desenvolvendo um mecanismo SQL embutido que suporta SQLite que suporta replicação de dados, recuperação automática de desastres e tolerância a falhas ao estender vários nós.
Dqlite é uma biblioteca C que implementa um mecanismo de banco de dados SQL e replicado com alta disponibilidade e failover automático.
O acrônimo “dqlite” pode ser traduzido como “SQLite distribuído”, o que significa que o dqlite estende o SQLite com um protocolo de rede que pode conectar várias instâncias do seu aplicativo e fazê-las agir como um cluster de alta disponibilidade, sem dependência de bancos de dados externos.
Como mencionado, o DBMS é implementado na forma de uma biblioteca C conectada aos aplicativos e distribuído sob a licença Apache 2.0 (o SQLite original é fornecido como domínio público).
A biblioteca é um complemento baseado no código SQLite existente, que adiciona suporte ao protocolo de rede para vincular várias instâncias do aplicativo em execução em hosts diferentes.
Um aplicativo criado com o Dqlite pode funcionar como um cluster de failover independente, independente do DBMS externo.
Na prática, a Canonical usa o Dqlite no sistema de gerenciamento de contêineres LXD.
Entre as áreas de aplicação da biblioteca, também é mencionada a criação de dispositivos da Internet e processadores de itens tolerantes a falhas nos sistemas de computadores Edge.
Para garantir consistência na replicação de dados, é usado um método de consenso baseado no algoritmo Raft, usado em projetos como etcd, RethinkDB, CockroachDB e OpenDaylight.
O Dqlite usa sua própria implementação asincrónica de C-raft , escrita em C.
Para multiplexar o processamento da conexão e organizar o lançamento de corutins, são utilizadas as bibliotecas preparadas libuv e libco.
Comparado a um projeto rqlite semelhante, o Dqlite fornece suporte completo a transações, pode se comunicar com qualquer projeto C, permite usar a função time () e usa replicação baseada em quadros, em vez de replicação baseada na tradução de expressões SQL.
Das características que podem ser destacadas no Dqlite são as seguintes:
- Executar todas as operações de disco e rede no modo assíncrono;
- A presença de um conjunto de testes para confirmar a precisão dos dados;
- Baixo consumo de memória e troca eficiente de dados pela rede;
- Armazenamento permanente no disco do banco de dados e no log de transações (com a possibilidade de armazenar em cache na memória);
- Recuperação rápida após falhas;
- Cliente CLI estável no idioma Go, que pode ser usado para inicializar o banco de dados, configurar replicação e conectar/desconectar nós;
- Suporte para arquiteturas ARM, X86, POWER e IBM Z;
- A implementação do algoritmo Raft é otimizada para minimizar a latência da transação;
- Implementação assíncrona de um único encadeamento usando libuv como um loop de eventos;
- Protocolo de cabo personalizado otimizado para primitivos e tipos de dados SQLite;
- Replicação de dados com base no algoritmo Raft e sua implementação eficiente em C-raft.
Como instalar a biblioteca C para SQL Dqlite no Linux e seus derivados
Para instalar a biblioteca C para SQL Dqlite no Linux, é preciso compilá-la no sistema, portanto esse é um método mais geral para instalar em (quase) qualquer distribuições Linux.
Para compilar e instalar, faça o seguinte:
Passo 1. Abra um terminal (use as teclas CTRL + ALT + T);
Passo 2. Para instalar as bibliotecas necessárias, use os comandos abaixo, exatamente nessa sequencia;
git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..
Passo 3. Depois que todas as bibliotecas necessárias estiverem instaladas, para construir a biblioteca compartilhada dqlite, basta executar os seguintes comandos;
Como instalar a biblioteca C para SQL Dqlite no Ubuntu e seus derivados
Para instalar a biblioteca C para SQL Dqlite no Ubuntu e ainda poder receber automaticamente as futuras atualizações dele, você deve fazer o seguinte:
Passo 1. Abra um terminal (use as teclas CTRL + ALT + T);
Passo 2. Se ainda não tiver, adicione o repositório do programa com este comando ou use esse tutorial;
sudo add-apt-repository ppa:dqlite/v1
Passo 3. Atualize o gerenciador de pacotes com o comando:
sudo apt-get update
Passo 4. Agora use o comando abaixo para instalar o programa;
sudo apt-get install libdqlite-dev
Pronto! Tudo instalado e pronto para uso. Para mais detalhes sobre o software, acesse a página do projeto.