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
Vær den første til at kommentere