Canonical tillkännagav version 1.0 av Dqlite, ett C-bibliotek för SQL

Canonical

Förra veckan Canonical meddelade lanseringen av en större version av Dqlite 1.0-projektet, du utvecklar en SQL-motor Inbyggd SQLite-kompatibel som stöder datareplikering, automatisk katastrofåterställning och feltolerans genom att spänna över flera noder.

Dqlite är ett C-bibliotek Det implementerar en replikerad och SQL-databasmotor med hög tillgänglighet och automatisk redundans. Förkortningen "dqlite" står för "Distribuerad SQLite", vilket innebär att dqlite utökar SQLite med ett nätverksprotokoll som kan ansluta flera instanser av din applikation och få dem att fungera som ett mycket tillgängligt kluster, utan beroende av externa databaser.

Såsom nämnts DBMS implementeras i form av ett C-bibliotek kopplat till applikationer och distribueras under Apache 2.0-licensen (den ursprungliga SQLite tillhandahålls i det offentliga området). Biblioteket är ett plugin baserat på befintlig SQLite-kod, vilket ger stöd för nätverksprotokoll för att länka flera instanser av applikationen som körs på olika värdar.

En applikation byggd med Dqlite kan fungera som ett failover-kluster av autonomt misstag, oberoende av extern DBMS.

I praktiken, Canonical använder Dqlite i LXD-containerhanteringssystemet. Bland bibliotekets applikationsområden nämns också skapandet av feletoleranta enheter för Internet of Things och processorer i Edge-datorsystem.

För att säkerställa konsekvens i datareplikering används en konsensusmetod baserad på Raft-algoritmen, som används i projekt som etcd, RethinkDB, CockroachDB och OpenDaylight. Dqlite använder sin egen asynkrona C-raft-implementering, skriven i C.

För att multiplexera anslutningsbehandlingen och organisera lanseringen av coroutines används de förberedda biblioteken libuv och libco.

Jämfört med ett liknande rqlite-projekt ger Dqlite fullständigt transaktionsstöd, det kan kommunicera med vilket C-projekt som helst, låter dig använda time () -funktionen och använder rambaserad replikering istället för SQL-uttryck översättningsbaserad replikering.

Av funktionerna som kan markeras i Dqlite är följande:

  • Utför alla disk- och nätverksoperationer i asynkront läge
  • Förekomsten av en uppsättning tester för att bekräfta noggrannheten i uppgifterna
  • Låg minnesförbrukning och effektivt datautbyte över nätverket
  • Permanent lagrings- och transaktionslogg för databas (med cacheminne i minnet)
  • Snabb återhämtning efter misslyckanden
  • Stabil CLI-klient i Go-språket, som kan användas för att initialisera databasen, konfigurera replikering och ansluta / koppla bort noder
  • Stöd för ARM-, X86-, POWER- och IBM Z-arkitekturer
  • Implementeringen av Raft-algoritmen är optimerad för att minimera transaktionslatens.
  • Asynkron enkel trådad implementering med libuv som en händelsesslinga.
  • Anpassat trådprotokoll optimerat för SQLite-primitiver och datatyper.
  • Datareplikering baserad på Raft-algoritmen och dess effektiva implementering i C-raft.

Hur installerar jag Dqlite på Ubuntu och derivat?

Canonical ger information om hur du kan bygga en klient för att interagera med Dqlite, du kan konsultera I följande länk.

Nu när det gäller att installera biblioteket på systemet, Detta kan installeras på två sätt för dem som är Ubuntu-användare eller något annat derivat av det. Canonical tillhandahåller en PPA varifrån det kan erhållas på ett ganska enkelt sätt.

Denna PPA kan läggas till från en terminal och utföra följande kommandon i den:

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

Den andra metoden för att installera detta bibliotek är att kompilera av detta på systemet så det här är en mer allmän metod för både Ubuntu och andra Linux-distributioner.

För att göra detta behöver de bara öppna en terminal och utföra följande kommandon:

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 alla nödvändiga bibliotek är installerade kan du köra för att bygga det delade biblioteket dqlite:

autoreconf -i
./configure
make
sudo make install

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.