Dqlite 1.0, en distribuert versjon av SQLite fra Canonical, er tilgjengelig

Kanonisk опубликовала betydelig prosjektutgivelse Dqlite 1.0 (Distribuert SQLite), som utvikler en SQLite-kompatibel innebygd SQL-motor som støtter datareplikering, automatisk gjenoppretting fra feil og feiltoleranse ved å distribuere behandlere på tvers av flere noder. DBMS er implementert i form av et C-bibliotek knyttet til applikasjoner og distribuert av under Apache 2.0-lisensen (den originale SQLite leveres i det offentlige domene). Språkbindinger tilgjengelig Go.

Biblioteket er et tillegg til den eksisterende SQLite-kodebasen som legger til nettverksprotokollstøtte for sammenkobling av flere forekomster av en applikasjon som kjører på forskjellige verter. En applikasjon kompilert med Dqlite kan fungere som en selvforsynt feiltolerant klynge, uavhengig av eksterne DBMS-er. I praksis brukes Dqlite av Canonical i sitt containerstyringssystem LXD. Blant bruksområdene til biblioteket nevnes også etableringen av feiltolerante Internet of Things-enheter og prosessorer i systemer
Edge- beregninger.

For å sikre konsistens i datareplikering, brukes en algoritmebasert konsensusmetode Raft, som brukes i prosjekter som etcd, RethinkDB, CockroachDB og OpenDaylight. Dqlite bruker sin egen asynkrone implementering C-flåte, skrevet på C-språk. Ferdige biblioteker brukes til multipleks tilkoblingsbehandling og organisere lanseringen av koroutiner libuv и libco.

Sammenlignet med et lignende prosjekt rqlite,Dqlite gir full transaksjonsstøtte, kan kommunisere med ethvert C-språkprosjekt, tillater bruk av time() ,funksjonen, og bruker rammebasert replikering i stedet for SQL ,oversettelsesbasert replikering.

Funksjoner til Dqlite:

  • Utfør alle disk- og nettverksoperasjoner asynkront;
  • Tilgjengelighet av et testsett for å bekrefte riktigheten av dataene;
  • Lavt minneforbruk og effektiv datautveksling over nettverket;
  • Permanent lagring av databasen og transaksjonslogg på disk (med mulighet for caching i minnet);
  • Rask gjenoppretting fra feil;
  • Stabil CLI-klient i Go-språk, som kan brukes til å initialisere databasen, konfigurere replikering og koble til/fra noder;
  • Støtter ARM, X86, POWER og IBM Z arkitekturer;
  • Implementeringen av Raft-algoritmen er optimalisert for å minimere forsinkelser når transaksjoner utføres.

Kilde: opennet.ru

Legg til en kommentar