Dqlite 1.0, una versió distribuïda de SQLite de Canonical, està disponible

Canònic publicat llançament important del projecte Dqlite 1.0 (SQLite distribuït), que desenvolupa un motor SQL incrustat compatible amb SQLite que admet la replicació de dades, la recuperació automàtica de fallades i la tolerància a errors mitjançant la distribució de controladors entre diversos nodes. El SGBD s'implementa en forma de biblioteca C adjunta a les aplicacions i Distribuït per sota la llicència Apache 2.0 (el SQLite original es proporciona al domini públic). Enquadernacions d'idiomes disponibles Go.

La biblioteca és un complement a la base de codi SQLite existent que afegeix suport de protocol de xarxa per interconnectar múltiples instàncies d'una aplicació que s'executa en diferents amfitrions. Una aplicació compilada amb Dqlite pot funcionar com un clúster autosuficient tolerant a errors, independentment dels SGBD externs. A la pràctica, Canonical utilitza Dqlite en el seu sistema de gestió de contenidors LXD. Entre les àrees d'aplicació de la biblioteca, també s'esmenta la creació de dispositius i processadors d'Internet de les coses tolerants a errors en sistemes.
Vora- càlculs.

Per garantir la coherència en la replicació de dades, s'utilitza un mètode de consens basat en algorismes Bassa, que s'utilitza en projectes com etcd, RethinkDB, CockroachDB i OpenDaylight. Dqlite utilitza la seva pròpia implementació asíncrona C-bassa, escrit en llenguatge C. Les biblioteques ja fetes s'utilitzen per multiplexar el processament de connexions i organitzar el llançament de corrutines libuv и libco.

En comparació amb un projecte similar rqliteDqlite proporciona suport transaccional complet, pot comunicar-se amb qualsevol projecte C, permet l'ús de la funció time() i utilitza la replicació basada en marcs en lloc de la replicació basada en traducció SQL.

Característiques de Dqlite:

  • Realitzeu totes les operacions de disc i xarxa de manera asíncrona;
  • Disponibilitat d'un conjunt de proves per confirmar la correcció de les dades;
  • Baix consum de memòria i intercanvi de dades eficient a la xarxa;
  • Emmagatzematge permanent de la base de dades i registre de transaccions al disc (amb possibilitat d'emmagatzemar a la memòria cau);
  • Recuperació ràpida de fallades;
  • Client CLI estable en llenguatge Go, que es pot utilitzar per inicialitzar la base de dades, configurar la replicació i connectar/desconnectar nodes;
  • Admet arquitectures ARM, X86, POWER i IBM Z;
  • La implementació de l'algoritme Raft està optimitzada per minimitzar els retards en cometre transaccions.

Font: opennet.ru

Afegeix comentari