K dispozícii je Dqlite 1.0, distribuovaná verzia SQLite od Canonical

Kanonický опубликовала významné vydanie projektu Dqlite 1.0 (Distributed SQLite), ktorá vyvíja vstavaný SQL engine kompatibilný s SQLite, ktorý podporuje replikáciu údajov, automatickú obnovu po zlyhaní a odolnosť voči chybám distribúciou obslužných programov medzi viacero uzlov. DBMS je implementovaný vo forme knižnice C pripojenej k aplikáciám a distribuovaný pod licenciou Apache 2.0 (originálny SQLite je poskytovaný vo verejnej doméne). Dostupné jazykové väzby Go.

Knižnica je doplnkom k existujúcej kódovej základni SQLite, ktorý pridáva podporu sieťového protokolu na prepojenie viacerých inštancií aplikácie bežiacej na rôznych hostiteľoch. Aplikácia skompilovaná s Dqlite môže fungovať ako sebestačný klaster odolný voči chybám, nezávislý od externých DBMS. V praxi Dqlite používa Canonical vo svojom systéme na správu kontajnerov LXD. Medzi oblasťami použitia knižnice sa spomína aj vytváranie zariadení a procesorov internetu vecí odolných voči chybám v systémoch
hrana- výpočty.

Na zabezpečenie konzistentnosti pri replikácii údajov sa používa metóda konsenzu založená na algoritme vor, ktorý sa používa v projektoch ako etcd, RethinkDB, CockroachDB a OpenDaylight. Dqlite používa vlastnú asynchrónnu implementáciu C-raft, napísaný v jazyku C. Hotové knižnice sa používajú na spracovanie multiplexného pripojenia a organizáciu spúšťania korutínov libuv и libco.

V porovnaní s podobným projektom rqliteDqlite poskytuje plnú transakčnú podporu, dokáže komunikovať s akýmkoľvek projektom v jazyku C, umožňuje použitie funkcie time() a namiesto replikácie založenej na preklade SQL používa replikáciu založenú na rámcoch.

Vlastnosti Dqlite:

  • Vykonávajte všetky diskové a sieťové operácie asynchrónne;
  • Dostupnosť testovacej sady na potvrdenie správnosti údajov;
  • Nízka spotreba pamäte a efektívna výmena dát cez sieť;
  • Trvalé uloženie databázy a protokolu transakcií na disk (s možnosťou cachovania v pamäti);
  • Rýchle zotavenie z porúch;
  • Stabilný klient CLI v jazyku Go, ktorý možno použiť na inicializáciu databázy, konfiguráciu replikácie a pripojenie/odpojenie uzlov;
  • Podporuje architektúry ARM, X86, POWER a IBM Z;
  • Implementácia algoritmu Raft je optimalizovaná tak, aby minimalizovala oneskorenia pri vykonávaní transakcií.

Zdroj: opennet.ru

Pridať komentár