Dqlite 1.0, una versione distribuita di SQLite da Canonical, hè dispunibule

Canonicu publicatu liberazione significativa di u prughjettu Dqlite 1.0 (SQLite Distribuitu), chì sviluppa un mutore SQL incrustatu cumpatibile cù SQLite chì sustene a replicazione di dati, a ricuperazione automatica da i fallimenti è a tolleranza à i difetti distribuendu i gestori in parechji nodi. U DBMS hè implementatu in forma di una biblioteca C attaccata à l'applicazioni è distribuitu da sottu a licenza Apache 2.0 (u SQLite originale hè furnitu in u duminiu publicu). Attacchi di lingua dispunibili Go.

A biblioteca hè un add-on à a basa di codice SQLite esistente chì aghjunghje un supportu di protokollu di rete per interconnecting multiple instances of an application running on different hosts. Una applicazione compilata cù Dqlite pò funziunà cum'è un cluster autosufficiente tolerante à i difetti, indipendentemente da DBMS esterni. In pratica, Dqlite hè utilizatu da Canonical in u so sistema di gestione di cuntainer LXD. Trà i zoni di applicazione di a biblioteca, a creazione di i dispositi Internet di e cose tolleranti à i difetti è i prucessori in i sistemi hè ancu mintuatu.
Edge- calculi.

Per assicurà a coerenza in a replicazione di dati, hè utilizatu un metudu di cunsensu basatu in algoritmi Raft, chì hè utilizatu in prughjetti cum'è etcd, RethinkDB, CockroachDB è OpenDaylight. Dqlite usa a so propria implementazione asincrona C-raft, scrittu in lingua C. Biblioteche pronte sò aduprate per u processu di cunnessione multiplex è urganizà u lanciu di coroutines libuv и libco.

Comparatu à un prughjettu simili rqlite,Dqlite furnisce un supportu transazionale cumpletu, pò cumunicà, cù qualsiasi prughjettu C, permette l'usu di a funzione time() è, usa a replicazione basata in frame invece di a replicazione basata in traduzzione SQL.

Caratteristiche di Dqlite:

  • Eseguite tutte e operazioni di discu è di rete in modu asincronu;
  • Disponibilità di un set di teste per cunfirmà a correttezza di e dati;
  • Bassu cunsumu di memoria è scambiu di dati efficiente nantu à a reta;
  • L'almacenamiento permanente di a basa di dati è u logu di transazzione nantu à u discu (cù a pussibilità di cache in memoria);
  • ripresa rapida da fallimenti;
  • Cliente CLI stabile in lingua Go, chì pò esse usata per inizializà a basa di dati, cunfigurà a replicazione è cunnette / disconnect nodes;
  • Supporta l'architetture ARM, X86, POWER è IBM Z;
  • L'implementazione di l'algoritmu Raft hè ottimizatu per minimizzà i ritardi quandu si cummette transazzione.

Source: opennet.ru

Add a comment