Dqlite 1.0, en distribueret version af SQLite fra Canonical, er tilgængelig

Canonical Company опубликовала væsentlig projektudgivelse Dqlite 1.0 (Distribueret SQLite), som udvikler en SQLite-kompatibel indlejret SQL-motor, der understøtter datareplikering, automatisk gendannelse fra fejl og fejltolerance ved at distribuere behandlere på tværs af flere noder. DBMS er implementeret i form af et C-bibliotek knyttet til applikationer og distribueret af under Apache 2.0-licensen (den originale SQLite leveres i det offentlige domæne). Sprogbindinger til rådighed Go.

Biblioteket er en tilføjelse til den eksisterende SQLite-kodebase, der tilføjer netværksprotokolstøtte til sammenkobling af flere forekomster af en applikation, der kører på forskellige værter. En applikation, der er kompileret med Dqlite, kan fungere som en selvforsynende fejltolerant klynge, uafhængig af eksterne DBMS'er. I praksis bruges Dqlite af Canonical i sit containerstyringssystem LXD. Blandt bibliotekets anvendelsesområder nævnes også skabelsen af ​​fejltolerante Internet of Things-enheder og processorer i systemer.
Edge- beregninger.

For at sikre konsistens i datareplikering anvendes en algoritmebaseret konsensusmetode Raft, som bruges i projekter som etcd, RethinkDB, CockroachDB og OpenDaylight. Dqlite bruger sin egen asynkrone implementering C-flåde, skrevet på C-sprog. Færdiglavede biblioteker bruges til at multiplekse forbindelsesbehandling og organisere lanceringen af ​​coroutiner libuv и libco.

Sammenlignet med et lignende projekt rqlite,Dqlite giver fuld transaktionssupport, kan kommunikere med ethvert C-projekt, tillader brug af time()-funktionen og ,bruger rammebaseret replikering i stedet for SQL-oversættelsesbaseret replikering.

Funktioner af Dqlite:

  • Udfør alle disk- og netværksoperationer asynkront;
  • Tilgængelighed af et testsæt til at bekræfte rigtigheden af ​​dataene;
  • Lavt hukommelsesforbrug og effektiv dataudveksling over netværket;
  • Permanent lagring af databasen og transaktionslog på disk (med mulighed for caching i hukommelsen);
  • Hurtig genopretning fra fejl;
  • Stabil CLI-klient i Go-sprog, som kan bruges til at initialisere databasen, konfigurere replikering og forbinde/afbryde noder;
  • Understøtter ARM, X86, POWER og IBM Z arkitekturer;
  • Implementeringen af ​​Raft-algoritmen er optimeret for at minimere forsinkelser, når der udføres transaktioner.

Kilde: opennet.ru

Tilføj en kommentar