Spoločnosť Canonical významné vydanie projektu (Distributed SQLite), vyvíjajúce kompatibilný so SQLite vstavaný SQL engine, ktorý podporuje replikáciu údajov, automatické obnovenie po havárii a zabezpečenie dostupnosti prostredníctvom rozloženia spracovateľov na viacerých uzloch. Systém riadenia databáz je realizovaný v podobe knižnice pripojenej k aplikáciám v jazyku C a pod licenciou Apache 2.0 (pôvodný SQLite je k dispozícii ako verejný majetok). K dispozícii sú väzby pre jazyk .
Knižnica je nadstavbou nad existujúcou kódovou základňou SQLite, ktorá pridáva podporu sieťového protokolu na prepojenie viacerých inštancií aplikácie spustených na rôznych hostiteľoch. Aplikácia zostavená s Dqlite môže fungovať ako samostatný odolný klaster, nezávislý od externých SDB. V praxi sa Dqlite používa spoločnosťou Canonical v systéme správy kontajnerov . Medzi oblasti použitia knižnice sa tiež uvádza vytváranie odolných zariadení internetu vecí a spracovateľov v systémoch
.
Na zabezpečenie konzistentnosti pri replikácii údajov sa používa metóda dosahovania konsenzu založená na algoritme , ktorý sa používa v takých projektoch ako etcd, RethinkDB, CockroachDB a OpenDaylight. V Dqlite sa používa vlastná asynchrónna implementácia , napísaná v jazyku C. Na multiplexovanie spracovania pripojení a organizáciu spúšťania kooperatívnych procesov sa používajú hotové knižnice a .
V porovnaní s podobným projektom , Dqlite poskytuje úplnú podporu transakcií, môže sa prepojiť s akýmikoľvek projektmi v jazyku C, umožňuje používať funkciu time() a aplikuje replikáciu založenú na snímkach namiesto replikácie na základe šírenia SQL výrazov.
Funkcie Dqlite:
- Vykonávanie všetkých diskových a sieťových operácií v asynchrónnom režime;
- Existencia testovacej sady na potvrdenie správnosti údajov;
- Nízka spotreba pamäte a efektívna výmena údajov v sieti;
- Trvalé uloženie na disku DB a logu transakcií (s možnosťou vyrovnávacej pamäte v pamäti);
- Rýchle obnovenie po havárii;
- Stabilný CLI klient v jazyku Go, ktorý sa dá použiť na inicializáciu DB, nastavenie replikácie a pripojenie/odpojenie uzlov;
- Podpora architektúr ARM, X86, POWER a IBM Z;
- Implementácia algoritmu Raft je optimalizovaná na minimalizáciu oneskorení pri potvrdzovaní transakcií.
Zdroj: opennet.ru
