Canonical annoncerer version 1.0 af Dqlite, et C-bibliotek til SQL

Canonical

Sidste uge Canonical annoncerede frigivelsen af ​​en større version af Dqlite 1.0-projektet, du udvikler en SQL-motor Indbygget SQLite-kompatibel, der understøtter datareplikering, automatisk katastrofegendannelse og fejltolerance ved at spænde over flere noder.

Dqlite er et C-bibliotek Det implementerer en replikeret og SQL-databasemotor med høj tilgængelighed og automatisk failover. Forkortelsen "dqlite" står for "Distribueret SQLite", hvilket betyder, at dqlite udvider SQLite med en netværksprotokol, der kan forbinde flere forekomster af din applikation og få dem til at fungere som en meget tilgængelig klynge uden afhængighed af eksterne databaser.

Som sagt DBMS er implementeret i form af et C-bibliotek knyttet til applikationer og distribueres under Apache 2.0-licensen (den originale SQLite leveres i det offentlige domæne). Biblioteket er et plugin på basis af eksisterende SQLite-kode, som tilføjer understøttelse af netværksprotokol for at linke flere forekomster af applikationen, der kører på forskellige værter.

En applikation bygget med Dqlite kan fungere som en failover-klynge ved autonom fejltagelse, uafhængig af ekstern DBMS.

I praksis, Canonical bruger Dqlite i LXD container management system. Blandt applikationsområderne i biblioteket nævnes også oprettelsen af ​​fejltolerant Internet of Things-enheder og processorer i Edge-computersystemer.

For at sikre konsistens i datareplikering anvendes en konsensusmetode baseret på Raft-algoritmen, som bruges i projekter som etcd, RethinkDB, CockroachDB og OpenDaylight. Dqlite bruger sin egen asynkrone implementering af C-raft, skrevet i C.

For at multiplexere behandlingen af ​​forbindelser og organisere lanceringen af ​​coroutines anvendes de forberedte biblioteker libuv og libco.

Sammenlignet med et lignende rqlite-projekt giver Dqlite fuld transaktionsstøtte, det kan kommunikere med ethvert C-projekt, giver dig mulighed for at bruge funktionen time () og bruger rammebaseret replikering i stedet for SQL-udtryks oversættelsesbaseret replikering.

Af de funktioner, der kan fremhæves i Dqlite, er følgende:

  • Udfør alle disk- og netværkshandlinger i asynkron tilstand
  • Tilstedeværelsen af ​​et sæt tests for at bekræfte nøjagtigheden af ​​dataene
  • Lavt hukommelsesforbrug og effektiv dataudveksling over netværket
  • Permanent databasedisklagring og transaktionslog (med mulighed for caching i hukommelsen)
  • Hurtig genopretning efter fejl
  • Stabil CLI-klient i Go-sprog, som kan bruges til at initialisere databasen, konfigurere replikering og tilslutte / afbryde noder
  • Understøttelse af ARM-, X86-, POWER- og IBM Z-arkitekturer
  • Implementeringen af ​​Raft-algoritmen er optimeret for at minimere transaktionens ventetid.
  • Asynkron implementering med en enkelt gevind ved hjælp af libuv som en hændelsessløjfe.
  • Custom wire-protokol optimeret til SQLite-primitiver og datatyper.
  • Datareplikering baseret på Raft-algoritmen og dens effektive implementering i C-raft.

Hvordan installeres Dqlite på Ubuntu og derivater?

Canonical giver information om, hvordan du kan opbygge en klient til interaktion med Dqlite, du kan konsultere dette I det følgende link.

Hvad angår installation af biblioteket på systemet, Dette kan installeres på to måder for dem, der er Ubuntu-brugere eller ethvert andet derivat af det. Canonical leverer en PPA hvorfra det kan opnås på en forholdsvis enkel måde.

Denne PPA kan tilføjes fra en terminal og udføre følgende kommandoer i den:

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

Den anden metode til at installere dette bibliotek er ved at kompilere af dette på systemet, så dette er en mere generel metode til både Ubuntu og andre Linux-distributioner.

For at gøre dette skal de kun åbne en terminal og udfø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 de nødvendige biblioteker er installeret, kan du køre for at opbygge det delte dqlite-bibliotek:

autoreconf -i
./configure
make
sudo make install

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.