K dispozici je Dqlite 1.0, distribuovaná verze SQLite od Canonical

Kanonický publikováno významné vydání projektu Dqlite 1.0 (Distributed SQLite), která vyvíjí SQLite kompatibilní embedded SQL engine, který podporuje replikaci dat, automatickou obnovu po selhání a odolnost proti chybám díky distribuci obslužných rutin mezi více uzly. DBMS je implementován ve formě knihovny C připojené k aplikacím a distribuovány pod licencí Apache 2.0 (originální SQLite je poskytován ve veřejné doméně). Dostupné jazykové vazby Go.

Knihovna je doplňkem stávající kódové základny SQLite, který přidává podporu síťového protokolu pro propojení více instancí aplikace běžící na různých hostitelích. Aplikace zkompilovaná pomocí Dqlite může fungovat jako soběstačný cluster odolný proti chybám, nezávislý na externích DBMS. V praxi Dqlite používá Canonical ve svém systému pro správu kontejnerů Lxd. Mezi oblastmi použití knihovny je také zmíněno vytváření zařízení a procesorů internetu věcí odolných proti chybám v systémech
Hrana- výpočty.

K zajištění konzistence při replikaci dat se používá metoda konsensu založená na algoritmu Vor, který se používá v projektech jako etcd, RethinkDB, CockroachDB a OpenDaylight. Dqlite používá vlastní asynchronní implementaci Řemeslo, napsaný v jazyce C. Hotové knihovny se používají k multiplexnímu zpracování připojení a organizování spouštění korutin libuv и libco.

V porovnání s podobným projektem rqliteDqlite poskytuje plnou transakční podporu, může komunikovat s jakýmkoli projektem v jazyce C, umožňuje použití funkce time() a místo replikace založené na překladu SQL používá replikaci založenou na rámcích.

Vlastnosti Dqlite:

  • Provádějte všechny diskové a síťové operace asynchronně;
  • Dostupnost testovací sady pro potvrzení správnosti údajů;
  • Nízká spotřeba paměti a efektivní výměna dat po síti;
  • Trvalé uložení databáze a transakčního protokolu na disk (s možností cachování v paměti);
  • Rychlé zotavení ze selhání;
  • Stabilní klient CLI v jazyce Go, který lze použít k inicializaci databáze, konfiguraci replikace a připojení/odpojení uzlů;
  • Podporuje architektury ARM, X86, POWER a IBM Z;
  • Implementace algoritmu Raft je optimalizována tak, aby minimalizovala zpoždění při provádění transakcí.

Zdroj: opennet.ru

Přidat komentář