Canonical anunță versiunea 1.0 a Dqlite, o bibliotecă C pentru SQL

Canonic

Săptămâna trecută Canonical a anunțat lansarea unei versiuni majore a proiectului Dqlite 1.0, dezvoltați un motor SQL Conform SQLite încorporat, care acceptă replicarea datelor, recuperarea automată în caz de dezastru și toleranța la defecțiuni prin extinderea mai multor noduri.

Dqlite este o bibliotecă C. Implementează un motor de baze de date SQL și replicat cu disponibilitate ridicată și failover automat. Acronimul „dqlite” înseamnă „Distribuit SQLite”, ceea ce înseamnă că dqlite extinde SQLite cu un protocol de rețea care poate conecta mai multe instanțe ale aplicației dvs. și le poate face să acționeze ca un cluster extrem de disponibil, fără dependență de baze de date externe.

După cum se menționează SGBD este implementat sub forma unei biblioteci C atașată aplicațiilor și este distribuit sub licența Apache 2.0 (SQLite original este furnizat în domeniul public). Biblioteca este un plugin pe baza codului SQLite existent, care adaugă suport pentru protocolul de rețea pentru a lega mai multe instanțe ale aplicației care rulează pe diferite gazde.

O aplicație construită cu Dqlite poate funcționa ca un cluster de failover din greșeală autonomă, independent de SGBD extern.

In practica, Canonical utilizează Dqlite în sistemul de gestionare a containerelor LXD. Printre domeniile de aplicații ale bibliotecii, este menționată și crearea de dispozitive și procesoare Internet of Things tolerante la erori în sistemele de calcul Edge.

Pentru a asigura coerența în replicarea datelor, se utilizează o metodă de consens bazată pe algoritmul Raft, care este utilizată în proiecte precum etcd, RethinkDB, CockroachDB și OpenDaylight. Dqlite folosește propria sa implementare asincronă a plutei C, scrisă în C.

Pentru multiplexarea procesării conexiunii și organizarea lansării coroutinelor, se utilizează bibliotecile pregătite libuv și libco.

Comparativ cu un proiect rqlite similar, Dqlite oferă suport complet pentru tranzacții, poate comunica cu orice proiect C, vă permite să utilizați funcția time () și utilizează replicarea bazată pe cadre în loc de replicarea bazată pe traducerea expresiilor SQL.

Dintre caracteristicile care pot fi evidențiate în Dqlite sunt următoarele:

  • Efectuați toate operațiile de disc și rețea în modul asincron
  • Prezența unui set de teste pentru a confirma exactitatea datelor
  • Consum redus de memorie și schimb eficient de date prin rețea
  • Stocare permanentă pe bază de date și jurnal de tranzacții (cu capacitate de stocare în memorie)
  • Recuperare rapidă după eșecuri
  • Client CLI stabil în limba Go, care poate fi utilizat pentru inițializarea bazei de date, configurarea replicării și conectarea / deconectarea nodurilor
  • Suport pentru arhitecturi ARM, X86, POWER și IBM Z
  • Implementarea algoritmului Raft este optimizată pentru a minimiza latența tranzacțiilor.
  • Implementare asincronă cu un singur thread folosind libuv ca buclă de eveniment.
  • Protocol de fir personalizat optimizat pentru primitive SQLite și tipuri de date.
  • Replicarea datelor bazată pe algoritmul Raft și implementarea eficientă a acestuia în C-raft.

Cum se instalează Dqlite pe Ubuntu și derivate?

Canonical oferă informații despre cum puteți construi un client pentru a interacționa cu Dqlite, pe care îl puteți consulta În următorul link.

Acum, în ceea ce privește instalarea bibliotecii pe sistem, Acest lucru poate fi instalat în două moduri pentru cei care sunt utilizatori Ubuntu sau orice alt derivat al acestuia. Canonical oferă un PPA de unde poate fi obținut într-un mod destul de simplu.

Acest PPA poate fi adăugat de la un terminal și executând următoarele comenzi în acesta:

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

Cealaltă metodă de instalare a acestei biblioteci este prin compilare din aceasta pe sistem, deci aceasta este o metodă mai generală atât pentru Ubuntu, cât și pentru alte distribuții Linux.

Pentru a face acest lucru, trebuie doar să deschidă un terminal și să execute următoarele comenzi:

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

Odată ce toate bibliotecile necesare sunt instalate, pentru a construi biblioteca partajată dqlite, puteți rula:

autoreconf -i
./configure
make
sudo make install

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.