Dqlite 1.0, unha versión distribuída de SQLite de Canonical, está dispoñible

Canónico publicado lanzamento significativo do proxecto Dqlite 1.0 (SQLite distribuido), que desenvolve un motor de SQL incorporado compatible con SQLite que admite a replicación de datos, a recuperación automática de fallos e a tolerancia a fallos distribuíndo controladores en varios nodos. O DBMS está implementado en forma de biblioteca C anexa ás aplicacións e distribuído por baixo a licenza Apache 2.0 (o SQLite orixinal ofrécese no dominio público). Encadernacións lingüísticas dispoñibles Go.

A biblioteca é un complemento á base de código SQLite existente que engade compatibilidade con protocolos de rede para interconectar varias instancias dunha aplicación que se executa en hosts diferentes. Unha aplicación compilada con Dqlite pode funcionar como un clúster autosuficiente tolerante a fallos, independentemente dos DBMS externos. Na práctica, Canonical usa Dqlite no seu sistema de xestión de contedores LXD. Entre os ámbitos de aplicación da biblioteca, tamén se menciona a creación de dispositivos e procesadores de Internet das Cousas tolerantes a fallos en sistemas.
Borde- cálculos.

Para garantir a coherencia na replicación de datos, utilízase un método de consenso baseado en algoritmos Balsa, que se usa en proxectos como etcd, RethinkDB, CockroachDB e OpenDaylight. Dqlite usa a súa propia implementación asíncrona Balsa C, escrito en linguaxe C. As bibliotecas preparadas utilízanse para multiplexar o procesamento de conexións e organizar o lanzamento de corrutinas libuv и libco.

En comparación cun proxecto similar rqlite,Dqlite ofrece soporte transaccional completo, pode comunicarse con calquera proxecto en linguaxe C, permite o uso da función time() e usa a replicación baseada en marcos en lugar de SQL, a replicación baseada en tradución.

Características de Dqlite:

  • Realiza todas as operacións de disco e rede de forma asíncrona;
  • Dispoñibilidade dun conxunto de probas para confirmar a corrección dos datos;
  • Baixo consumo de memoria e intercambio de datos eficiente pola rede;
  • Almacenamento permanente da base de datos e rexistro de transaccións no disco (coa posibilidade de almacenar na memoria caché);
  • Recuperación rápida de fallos;
  • Cliente CLI estable en linguaxe Go, que se pode usar para inicializar a base de datos, configurar a replicación e conectar/desconectar nodos;
  • Admite arquitecturas ARM, X86, POWER e IBM Z;
  • A implementación do algoritmo Raft está optimizada para minimizar os atrasos ao realizar transaccións.

Fonte: opennet.ru

Engadir un comentario