È disponibile Dqlite 1.0, una variante distribuita di SQLite da Canonical

Azienda Canonical ha pubblicato importante rilascio del progetto Dqlite 1.0 (Distributed SQLite), sviluppando un motore SQL incorporato compatibile con SQLite, che supporta la replica dei dati, il recupero automatico dopo i guasti e la resilienza distribuendo i gestori su più nodi. Il DBMS è implementato come una libreria in C da collegare alle applicazioni e è distribuito è sotto licenza Apache 2.0 (l'originale SQLite è fornito come pubblico dominio). Sono disponibili binding per il linguaggio Go.

La libreria è un'estensione della base di codice SQLite esistente, che aggiunge supporto per un protocollo di rete per collegare più istanze dell'applicazione in esecuzione su host diversi. Un'applicazione costruita con Dqlite può funzionare come un cluster autonomo e resiliente, senza dipendere da DBMS esterni. In pratica, Dqlite è utilizzato da Canonical nel sistema di gestione dei container LXD. Tra le aree di applicazione della libreria si menziona anche la creazione di dispositivi IoT resilienti e gestori in sistemi
Edge-di calcolo.

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. In Dqlite viene utilizzata una propria implementazione asincrona C-raft, scritta in C. Per il multiplexing delle connessioni e l'organizzazione dell'esecuzione delle coroutine vengono utilizzate librerie pronte libuv e libco.

Rispetto a un progetto simile rqlite, Dqlite offre supporto completo per le transazioni, può collegarsi a qualsiasi progetto in C, consente l'uso della funzione time() e applica la replica basata su frame invece della replica basata sulla trasmissione delle espressioni SQL.

Caratteristiche di Dqlite:

  • Esecuzione di tutte le operazioni su disco e di rete in modalità asincrona;
  • Presenza di un insieme di test per confermare la correttezza dei dati;
  • Basso consumo di memoria ed efficace scambio di dati attraverso la rete;
  • Memorizzazione permanente su disco del DB e del log delle transazioni (con possibilità di caching in memoria);
  • Ripristino rapido dopo i guasti;
  • Un client CLI stabile in linguaggio Go, utilizzabile per inizializzare il DB, configurare la replica e collegare/disconnettere i nodi;
  • Supporto per le architetture ARM, X86, POWER e IBM Z;
  • L'implementazione dell'algoritmo Raft è ottimizzata per minimizzare i ritardi nella registrazione delle transazioni.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster