Dqlite 1.0, uma versão distribuída do SQLite da Canonical, está disponível

Canônico publicado lançamento significativo do projeto Dqlite 1.0 (SQLite distribuído), que desenvolve um mecanismo SQL integrado compatível com SQLite que oferece suporte à replicação de dados, recuperação automática de falhas e tolerância a falhas, distribuindo manipuladores em vários nós. O SGBD é implementado na forma de uma biblioteca C anexada a aplicativos e distribuído por sob a licença Apache 2.0 (o SQLite original é fornecido em domínio público). Ligações de idioma disponíveis Go.

A biblioteca é um complemento à base de código SQLite existente que adiciona suporte a protocolo de rede para interconectar múltiplas instâncias de um aplicativo em execução em diferentes hosts. Uma aplicação compilada com Dqlite pode funcionar como um cluster autossuficiente e tolerante a falhas, independente de SGBDs externos. Na prática, Dqlite é utilizado pela Canonical em seu sistema de gerenciamento de containers LXD. Entre 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
borda- cálculos.

Para garantir consistência na replicação de dados, é usado um método de consenso baseado em algoritmo Raft, que é usado em projetos como etcd, RethinkDB, CockroachDB e OpenDaylight. Dqlite usa sua própria implementação assíncrona Arte, escrito em linguagem C. Bibliotecas prontas são usadas para multiplexar o processamento de conexões e organizar o lançamento de corrotinas libuv и libco.

Comparado com um projeto semelhante rqliteO Dqlite fornece suporte transacional completo, pode se comunicar com qualquer projeto C, permite o uso da função time() e usa replicação baseada em quadros em vez de replicação baseada em tradução SQL.

Recursos do Dqlite:

  • Execute todas as operações de disco e rede de forma assíncrona;
  • Disponibilidade de um conjunto de testes para confirmar a exatidão dos dados;
  • Baixo consumo de memória e troca eficiente de dados pela rede;
  • Armazenamento permanente da base de dados e log de transações em disco (com possibilidade de cache na memória);
  • Recuperação rápida de falhas;
  • Cliente CLI estável em linguagem Go, que pode ser utilizado para inicializar o banco de dados, configurar replicação e conectar/desconectar nós;
  • Suporta arquiteturas ARM, X86, POWER e IBM Z;
  • A implementação do algoritmo Raft é otimizada para minimizar atrasos na confirmação de transações.

Fonte: opennet.ru

Adicionar um comentário