Dqlite 1.0, distribuirana verzija SQLite-a kompanije Canonical, je dostupna

Canonical Company objavljeno značajno izdanje projekta Dqlite 1.0 (Distributed SQLite), koji razvija SQLite kompatibilan ugrađeni SQL motor koji podržava replikaciju podataka, automatski oporavak od kvarova i toleranciju grešaka distribucijom rukovatelja na više čvorova. DBMS je implementiran u obliku C biblioteke pripojene aplikacijama i distribuira pod licencom Apache 2.0 (originalni SQLite je dostupan u javnom domenu). Dostupne jezičke veze Go.

Biblioteka je dodatak postojećoj SQLite bazi koda koji dodaje podršku mrežnog protokola za međusobno povezivanje više instanci aplikacije koja se izvodi na različitim hostovima. Aplikacija kompajlirana sa Dqliteom može funkcionirati kao samodovoljan klaster otporan na greške, neovisno o eksternim DBMS-ovima. U praksi, Dqlite koristi Canonical u svom sistemu upravljanja kontejnerima LXD. Među oblastima primene biblioteke spominje se i kreiranje uređaja i procesora Interneta stvari otpornih na greške u sistemima.
Edge- kalkulacije.

Da bi se osigurala konzistentnost u replikaciji podataka, koristi se metoda konsenzusa zasnovana na algoritmu Splav, koji se koristi u projektima kao što su etcd, RethinkDB, CockroachDB i OpenDaylight. Dqlite koristi vlastitu asinkronu implementaciju C-raft, napisan u C jeziku. Gotove biblioteke se koriste za multipleksnu obradu veze i organiziranje pokretanja korutina libuv и libco.

U poređenju sa sličnim projektom rqlite,Dqlite pruža punu transakcionu podršku, može komunicirati sa bilo kojim C projektom, dozvoljava korištenje funkcije time() i koristi replikaciju baziranu na okviru umjesto replikacije bazirane na SQL prijevodu.

Karakteristike Dqlite-a:

  • Izvodi sve diskove i mrežne operacije asinhrono;
  • Dostupnost testnog skupa za potvrdu ispravnosti podataka;
  • Mala potrošnja memorije i efikasna razmjena podataka preko mreže;
  • Trajno skladištenje baze podataka i log transakcija na disku (sa mogućnošću keširanja u memoriju);
  • Brz oporavak od kvarova;
  • Stabilan CLI klijent u Go jeziku, koji se može koristiti za inicijalizaciju baze podataka, konfiguraciju replikacije i povezivanje/odspajanje čvorova;
  • Podržava ARM, X86, POWER i IBM Z arhitekture;
  • Implementacija Raft algoritma je optimizirana kako bi se minimizirala kašnjenja prilikom izvršavanja transakcija.

izvor: opennet.ru

Dodajte komentar