Dqlite 1.0, o versiune distribuită a SQLite de la Canonical, este disponibilă

Compania Canonică а publicat lansare semnificativă a proiectului Dqlite 1.0 (Distributed SQLite), care dezvoltă un motor SQL încorporat compatibil cu SQLite, care acceptă replicarea datelor, recuperarea automată de la erori și toleranța la erori prin distribuirea handlerelor pe mai multe noduri. SGBD-ul este implementat sub forma unei biblioteci C atașate aplicațiilor și distribuit de sub licența Apache 2.0 (SQLite original este furnizat în domeniul public). Legături de limbă disponibile Go.

Biblioteca este un add-on la baza de cod SQLite existentă care adaugă suport pentru protocolul de rețea pentru interconectarea mai multor instanțe ale unei aplicații care rulează pe gazde diferite. O aplicație compilată cu Dqlite poate funcționa ca un cluster autonom la erori, independent de SGBD-urile externe. În practică, Dqlite este folosit de Canonical în sistemul său de management al containerelor Lxd. Dintre domeniile de aplicare ale bibliotecii, se menționează și crearea de dispozitive și procesoare Internet of Things tolerante la erori în sisteme.
Margine- calcule.

Pentru a asigura coerența în replicarea datelor, se utilizează o metodă de consens bazată pe algoritm Plută, care este folosit în proiecte precum etcd, RethinkDB, CockroachDB și OpenDaylight. Dqlite folosește propria sa implementare asincronă C-plută, scris în limbaj C. Bibliotecile gata făcute sunt folosite pentru a multiplexa procesarea conexiunilor și pentru a organiza lansarea coroutinelor libuv и libco.

Comparativ cu un proiect similar rqliteDqlite oferă suport tranzacțional complet, poate comunica cu orice proiect C, permite utilizarea funcției time() și folosește replicarea bazată pe cadre în loc de replicarea bazată pe traducere SQL.

Caracteristicile Dqlite:

  • Efectuați toate operațiunile pe disc și rețea în mod asincron;
  • Disponibilitatea unui set de teste pentru a confirma corectitudinea datelor;
  • Consum redus de memorie și schimb eficient de date prin rețea;
  • Stocarea permanentă a bazei de date și a jurnalului de tranzacții pe disc (cu posibilitate de cache în memorie);
  • Recuperare rapidă după defecțiuni;
  • Client CLI stabil în limba Go, care poate fi utilizat pentru a inițializa baza de date, a configura replicarea și a conecta/deconecta nodurile;
  • Suportă arhitecturi ARM, X86, POWER și IBM Z;
  • Implementarea algoritmului Raft este optimizată pentru a minimiza întârzierile la efectuarea tranzacțiilor.

Sursa: opennet.ru

Adauga un comentariu