A Canonical anuncia a versão 1.0 do Dqlite, uma biblioteca C para SQL

Canônico

Na semana passada A Canonical anunciou o lançamento de uma versão principal do projeto Dqlite 1.0, você está desenvolvendo um motor SQL Compatível com SQLite integrado que oferece suporte à replicação de dados, recuperação automática de desastres e tolerância a falhas, abrangendo vários nós.

Dqlite é uma biblioteca C Ele implementa um mecanismo de banco de dados SQL replicado com alta disponibilidade e failover automático. A sigla "dqlite" significa "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 atuar como um cluster altamente disponível, sem dependência de bancos de dados externos.

Como mencionado o SGBD é implementado na forma de uma biblioteca C anexada aos aplicativos e é distribuído sob a licença Apache 2.0 (o SQLite original é fornecido em domínio público). A biblioteca é um plugin com base no código SQLite existente, que adiciona suporte ao protocolo de rede para vincular várias instâncias do aplicativo em execução em diferentes hosts.

Um aplicativo construído com Dqlite pode funcionar como um cluster de failover por erro autônomo, independente de DBMS externo.

Na prática, A Canonical usa Dqlite no sistema de gerenciamento de contêineres LXD. Dentre as áreas de aplicação da biblioteca, também é mencionada a criação de dispositivos e processadores de Internet das Coisas tolerantes a falhas em sistemas de computação Edge.

Para garantir a consistência na replicação de dados, um método de consenso baseado no algoritmo Raft é usado, que é usado em projetos como etcd, RethinkDB, CockroachDB e OpenDaylight. O Dqlite usa sua própria implementação C-raft assíncrona, escrita em C.

Para multiplexar o processamento da conexão e organizar o lançamento de co-rotinas, as bibliotecas preparadas libuv e libco são usadas.

Comparado a um projeto rqlite semelhante, o Dqlite fornece suporte completo para transações, ele pode se comunicar com qualquer projeto C, permite que você use a função time () e usa replicação baseada em quadro em vez de replicação baseada em tradução de expressão SQL.

Dos recursos que podem ser destacados no Dqlite, estão os seguintes:

  • Execute todas as operações de disco e rede em 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 em disco de banco de dados permanente e registro de transações (com capacidade de cache na memória)
  • Recuperação rápida após falhas
  • Cliente CLI estável na linguagem Go, que pode ser usado para inicializar o banco de dados, configurar a 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 thread único usando libuv como um loop de evento.
  • Protocolo de conexão customizado otimizado para primitivos SQLite e tipos de dados.
  • Replicação de dados baseada no algoritmo Raft e sua implementação eficiente em C-raft.

Como instalar o Dqlite no Ubuntu e derivados?

A Canonical fornece informações sobre como você pode construir um cliente para interagir com Dqlite, você pode consultar no link a seguir.

Agora, para instalar a biblioteca no sistema, Isso pode ser instalado de duas maneiras para aqueles que são usuários do Ubuntu ou qualquer outro derivado dele. Canonical fornece um PPA de onde pode ser obtido de uma forma bastante simples.

Este PPA pode ser adicionado de um terminal e executando os seguintes comandos nele:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

O outro método para instalar esta biblioteca é compilando disso no sistema, portanto, este é um método mais geral para Ubuntu e outras distribuições Linux.

Para isso, basta abrir um terminal e executar os seguintes comandos:

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 ..

Depois que todas as bibliotecas necessárias estiverem instaladas, para construir a biblioteca compartilhada dqlite, você pode executar:

autoreconf -i
./configure
make
sudo make install

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.