Está disponível o Dqlite 1.0, uma variante distribuída do SQLite da Canonical

A Canonical publicou lançamento significativo do projeto Dqlite 1.0 (SQLite Distribuído), desenvolvendo um mecanismo SQL incorporado compatível com SQLite, que suporta replicação de dados, recuperação automática de falhas e garantia de alta disponibilidade através da distribuição de processadores em vários nós. O SGBD é implementado na forma de uma biblioteca em C vinculada a aplicativos e é distribuído sob a licença Apache 2.0 (o SQLite original é disponibilizado como domínio público). Há bindings disponíveis para a linguagem Go.

A biblioteca é uma extensão da base de código existente do SQLite, que adiciona suporte ao protocolo de rede para interligar várias instâncias de aplicativos executadas em diferentes hosts. Um aplicativo compilado com Dqlite pode funcionar como um cluster auto-suficiente e tolerante a falhas, sem depender de SGBDs externos. Na prática, a Dqlite é usada pela empresa Canonical no sistema de gerenciamento de contêineres LXD. Áreas de aplicação da biblioteca também incluem a criação de dispositivos de internet das coisas tolerantes a falhas e processadores em sistemas
Edge-computação.

Para garantir a consistência durante a replicação de dados, utiliza-se um método de alcance de consenso baseado no algoritmo Raft, que é usado em projetos como etcd, RethinkDB, CockroachDB e OpenDaylight. Na Dqlite, uma implementação assíncrona própria do C-raft, escrita em C, é aplicada. Para multiplexação do tratamento de conexões e organização do lançamento de corrotinas, são utilizadas bibliotecas prontas libuv e libco.

Comparado com um projeto semelhante rqlite, a Dqlite oferece suporte total a transações, pode se conectar a qualquer projeto escrito em C, permite o uso da função time() e aplica replicação baseada em quadros em vez de replicação baseada na retransmissão de expressões SQL.

Características da Dqlite:

  • Execução de todas as operações de disco e rede de forma assíncrona;
  • Disponibilidade de um conjunto de testes para confirmar a correção dos dados;
  • Baixo consumo de memória e troca de dados eficaz pela rede;
  • Armazenamento persistente no disco do banco de dados e do log de transações (com possibilidade de cache na memória);
  • Rápida recuperação após falhas;
  • Cliente CLI estável escrito em 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 latências na confirmação de transações.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster