Canonical annuncia la versione 1.0 di Dqlite, una libreria C per SQL

Canonical

La settimana scorsa Canonical ha annunciato il rilascio di una versione principale del progetto Dqlite 1.0, stai sviluppando un motore SQL Conforme a SQLite integrato che supporta la replica dei dati, il ripristino di emergenza automatico e la tolleranza agli errori su più nodi.

Dqlite è una libreria C. Implementa un motore di database replicato e SQL con disponibilità elevata e failover automatico. L'acronimo "dqlite" sta per "Distributed SQLite", il che significa che dqlite estende SQLite con un protocollo di rete che può connettere più istanze della tua applicazione e farle agire come un cluster a disponibilità elevata, senza dipendere da database esterni.

Come menzionato il DBMS è implementato sotto forma di una libreria C allegata alle applicazioni ed è distribuito sotto la licenza Apache 2.0 (l'originale SQLite è fornito di pubblico dominio). La libreria è un plugin sulla base del codice SQLite esistente, che aggiunge il supporto del protocollo di rete per collegare più istanze dell'applicazione in esecuzione su host diversi.

Un'applicazione creata con Dqlite può funzionare come cluster di failover per errore autonomo, indipendente dal DBMS esterno.

In pratica, Canonical utilizza Dqlite nel sistema di gestione dei contenitori LXD. Tra le aree di applicazione della libreria, viene menzionata anche la creazione di dispositivi e processori Internet of Things a tolleranza di errore nei sistemi di Edge Computing.

Per garantire la coerenza nella replica dei dati, viene utilizzato un metodo di consenso basato sull'algoritmo Raft, utilizzato in progetti come etcd, RethinkDB, CockroachDB e OpenDaylight. Dqlite utilizza la propria implementazione C-raft asincrona, scritta in C.

Per multiplexare l'elaborazione della connessione e organizzare il lancio delle coroutine, vengono utilizzate le librerie preparate libuv e libco.

Rispetto a un progetto rqlite simile, Dqlite fornisce il supporto completo per le transazioni, può comunicare con qualsiasi progetto C, consente di utilizzare la funzione time () e utilizza la replica basata su frame anziché la replica basata sulla traduzione di espressioni SQL.

Tra le caratteristiche che possono essere evidenziate in Dqlite sono le seguenti:

  • Eseguire tutte le operazioni su disco e rete in modalità asincrona
  • La presenza di una serie di test per confermare l'accuratezza dei dati
  • Basso consumo di memoria e scambio dati efficiente sulla rete
  • Archiviazione su disco del database permanente e registro delle transazioni (con funzionalità di memorizzazione nella cache in memoria)
  • Ripristino rapido dopo i guasti
  • Client CLI stabile in linguaggio Go, che può essere utilizzato per inizializzare il database, configurare la replica e connettere / disconnettere i nodi
  • Supporto per architetture ARM, X86, POWER e IBM Z
  • L'implementazione dell'algoritmo Raft è ottimizzata per ridurre al minimo la latenza delle transazioni.
  • Implementazione asincrona a thread singolo utilizzando libuv come loop di eventi.
  • Protocollo cablato personalizzato ottimizzato per primitive e tipi di dati SQLite.
  • Replica dei dati basata sull'algoritmo Raft e la sua efficiente implementazione in C-raft.

Come installare Dqlite su Ubuntu e derivati?

Canonical fornisce informazioni su come creare un client per interagire con Dqlite, che puoi consultare nel seguente link

Ora per quanto riguarda l'installazione della libreria sul sistema, Questo può essere installato in due modi per coloro che sono utenti di Ubuntu o qualsiasi altro derivato di esso. Canonical fornisce un PPA da dove può essere ottenuto in modo abbastanza semplice.

Questo PPA può essere aggiunto da un terminale ed eseguendo i seguenti comandi al suo interno:

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

L'altro metodo per installare questa libreria è la compilazione di questo sul sistema, quindi questo è un metodo più generale sia per Ubuntu che per altre distribuzioni Linux.

Per fare ciò, devono solo aprire un terminale ed eseguire i seguenti comandi:

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 ..

Una volta installate tutte le librerie necessarie, per costruire la libreria condivisa dqlite, puoi eseguire:

autoreconf -i
./configure
make
sudo make install

Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.