A Canonical vállalat jelentős kiadás a projekt számára (Distributed SQLite), amely egy SQLite-kompatibilis beágyazott SQL-motort fejleszt, amely adat-replikációt, automatikus hiba-helyreállítást és megbízhatóságot biztosít azáltal, hogy a kezelőket több csomóponton osztja el. Az RDBMS egy C-könyvtár formájában van megvalósítva, amely az alkalmazásokhoz csatlakoztatható és Apache 2.0 alatt licencelt (az eredeti SQLite közpublic domain formában érhető el). Elérhetők nyelvi kötések .
A könyvtár egy meglévő SQLite kódalapra épül, amely támogatja a hálózati protokollt a különböző hosztokon futó alkalmazás példányok közötti összekapcsolásra. Az Dqlite-tel készített alkalmazás önálló, hibaálló klaszterként működhet, függetlenül a külső RDBMS-től. Az Dqlitet a Canonical cég használja a konténerkezelő rendszerben . A könyvtár alkalmazási területei közé tartozik a hibaálló IoT-eszközök és a rendszerekben szereplő kezelők létrehozása
.
Az adatok replikációs következetességének biztosításához konszenzus elérési módszert alkalmaznak, amely a algoritmuson alapul, amelyet olyan projektek használnak, mint az etcd, RethinkDB, CockroachDB és OpenDaylight. A Dqlite a saját aszinkron megvalósítását alkalmazza, , C nyelven íródott. A kapcsolatok kezelésének multiplexelésére és a szálak elindítására kész könyvtárakat használnak. és .
A hasonló projekt, , szemben az Dqlite teljes tranzakciótámogatást biztosít, bármilyen C nyelven íródó projekttel összekapcsolható, lehetővé teszi a time() funkció használatát és keret-alapú replikáción alapul a SQL-kifejezések rétegezése helyett.
A Dqlite jellemzői:
- Minden lemezes és hálózati művelet aszinkron módban történik;
- Tesztkészlet elérhetősége az adatok helyességének megerősítésére;
- Alacsony memóriafogyasztás és hatékony adatcsere a hálózaton;
- Állandó tárolás a lemezen az adatbázis és a tranzakciós napló (támogatott memória-cache-el);
- Gyors hiba-helyreállítás;
- Stabil CLI kliens Go nyelven, amely alkalmas az adatbázis inicializálására, replikáció beállítására és csomópontok csatlakoztatására/lekapcsolására;
- Támogatott architektúrák: ARM, X86, POWER és IBM Z;
- A Raft algoritmus megvalósítása optimalizálva van a tranzakciók rögzítésének késleltetésének minimalizálására.
Forrás: opennet.ru
