Canonical kunngjør versjon 1.0 av Dqlite, et C-bibliotek for SQL

Canonical

Forrige uke Canonical kunngjorde lanseringen av en større versjon av Dqlite 1.0-prosjektet, du utvikler en SQL-motor Innebygd SQLite-kompatibel som støtter datareplikering, automatisk katastrofegjenoppretting og feiltoleranse ved å strekke seg over flere noder.

Dqlite er et C-bibliotek Den implementerer en replikert og SQL-databasmotor med høy tilgjengelighet og automatisk failover. Forkortelsen "dqlite" står for "Distribuert SQLite", som betyr at dqlite utvider SQLite med en nettverksprotokoll som kan koble flere forekomster av applikasjonen din og få dem til å fungere som en svært tilgjengelig klynge, uten avhengighet av eksterne databaser.

Som nevnt DBMS er implementert i form av et C-bibliotek knyttet til applikasjoner og distribueres under Apache 2.0-lisensen (den opprinnelige SQLite tilbys i det offentlige området). Biblioteket er et plugin på grunnlag av eksisterende SQLite-kode, som legger til nettverksprotokollstøtte for å koble flere forekomster av applikasjonen som kjører på forskjellige verter.

Et program bygget med Dqlite kan fungere som en failover-klynge ved autonom feil, uavhengig av ekstern DBMS.

I praksis, Canonical bruker Dqlite i LXD container management system. Blant bruksområdene i biblioteket nevnes også opprettelsen av feiltolerante Internet of Things-enheter og prosessorer i Edge-datasystemer.

For å sikre konsistens i datareplikering brukes en konsensusmetode basert på Raft-algoritmen, som brukes i prosjekter som etcd, RethinkDB, CockroachDB og OpenDaylight. Dqlite bruker sin egen asynkrone implementering av C-flåte, skrevet i C.

For å multiplexere forbindelsesbehandling og organisere lanseringen av coroutines, brukes de forberedte bibliotekene libuv og libco.

Sammenlignet med et lignende rqlite-prosjekt, gir Dqlite full transaksjonsstøtte, kan den kommunisere med ethvert C-prosjekt, lar deg bruke time () -funksjonen, og bruker rammebasert replikering i stedet for SQL-uttrykk oversettelsesbasert replikering.

Av funksjonene som kan fremheves i Dqlite er følgende:

  • Utfør alle disk- og nettverksoperasjoner i asynkron modus
  • Tilstedeværelsen av et sett med tester for å bekrefte nøyaktigheten av dataene
  • Lavt minneforbruk og effektiv datautveksling over nettverket
  • Permanent databaselagrings- og transaksjonslogg (med lagringsbuformulering i minnet)
  • Rask gjenoppretting etter feil
  • Stabil CLI-klient i Go-språket, som kan brukes til å initialisere databasen, konfigurere replikering og koble til / koble fra noder
  • Støtte for ARM-, X86-, POWER- og IBM Z-arkitekturer
  • Implementeringen av Raft-algoritmen er optimalisert for å minimere transaksjonsforsinkelse.
  • Asynkron implementering av enkelt tråder med libuv som en hendelsessløyfe.
  • Tilpasset trådprotokoll optimalisert for SQLite-primitive og datatyper.
  • Datareplikering basert på Raft-algoritmen og effektiv implementering i C-raft.

Hvordan installere Dqlite på Ubuntu og derivater?

Canonical gir informasjon om hvordan du kan bygge en klient for interaksjon med Dqlite, du kan konsultere dette I den følgende lenken.

Nå som for å installere biblioteket på systemet, Dette kan installeres på to måter for de som er Ubuntu-brukere eller noe annet avledet av det. Canonical gir en PPA hvorfra det kan fås på en ganske enkel måte.

Denne PPA kan legges til fra en terminal og utføre følgende kommandoer i den:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

Den andre metoden for å installere dette biblioteket er ved å kompilere av dette på systemet, så dette er en mer generell metode for både Ubuntu og andre Linux-distribusjoner.

For å gjøre dette trenger de bare å åpne en terminal og utføre følgende kommandoer:

git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..

Når alle nødvendige biblioteker er installert, kan du kjøre for å bygge det delte biblioteket dqlite:

autoreconf -i
./configure
make
sudo make install

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.