Elérhető a Dqlite 1.0, a Canonical SQLite elosztott változata

Canonical Company közzétett jelentős projektkiadás Dqlite 1.0 (Distributed SQLite), amely egy SQLite-kompatibilis beágyazott SQL-motort fejleszt, amely támogatja az adatreplikációt, az automatikus helyreállítást a hibákból és a hibatűrést a kezelők több csomópont közötti elosztásával. A DBMS az alkalmazásokhoz csatolt C könyvtár formájában valósul meg forgalmazza az Apache 2.0 licenc alatt (az eredeti SQLite nyilvánosan elérhető). Nyelvi kötések elérhetők Go.

A könyvtár a meglévő SQLite kódbázis kiegészítője, amely hálózati protokolltámogatással egészíti ki a különböző gazdagépeken futó alkalmazások több példányának összekapcsolását. A Dqlite-tal lefordított alkalmazások önellátó hibatűrő fürtként működhetnek, függetlenek a külső DBMS-ektől. A gyakorlatban a Canonical a Dqlite-ot használja a konténerkezelő rendszerében LXD. A könyvtár felhasználási területei között említésre kerül még hibatűrő Internet of Things eszközök és processzorok létrehozása a rendszerekben
él- számítások.

Az adatreplikáció következetességének biztosítása érdekében algoritmus alapú konszenzusos módszert használnak Tutaj, amelyet olyan projektekben használnak, mint az etcd, RethinkDB, CockroachDB és az OpenDaylight. A Dqlite saját aszinkron megvalósítását használja Hajó, C nyelven írva. A kész könyvtárak a kapcsolatfeldolgozás multiplexelésére és a korutinok indításának megszervezésére szolgálnak libuv и libco.

Egy hasonló projekthez képest rqliteA Dqlite teljes körű tranzakciós támogatást nyújt, bármilyen C projekttel képes kommunikálni, lehetővé teszi a time() függvény használatát, és keret alapú replikációt használ az SQL fordítás alapú replikáció helyett.

A Dqlite jellemzői:

  • Az összes lemez- és hálózati művelet aszinkron végrehajtása;
  • Az adatok helyességének ellenőrzésére szolgáló tesztkészlet rendelkezésre állása;
  • Alacsony memóriafogyasztás és hatékony adatcsere a hálózaton keresztül;
  • Az adatbázis és a tranzakciós napló állandó tárolása lemezen (memóriában gyorsítótárazás lehetőségével);
  • Gyors felépülés a hibákból;
  • Stabil CLI kliens Go nyelven, amely használható az adatbázis inicializálására, a replikáció konfigurálására és a csomópontok csatlakoztatására/leválasztására;
  • Támogatja az ARM, X86, POWER és IBM Z architektúrákat;
  • A Raft algoritmus megvalósítása úgy van optimalizálva, hogy minimalizálja a késedelmeket a tranzakciók végrehajtása során.

Forrás: opennet.ru

Hozzászólás