Dqlite 1.0, Canonicalin hajautettu versio SQLitesta, on saatavilla

Kanoninen julkaistu merkittävä projektijulkaisu Dqlite 1.0 (Distributed SQLite), joka kehittää SQLite-yhteensopivan sulautetun SQL-moottorin, joka tukee tietojen replikointia, automaattista palautumista vioista ja vikasietoisuutta jakamalla käsittelijät useisiin solmuihin. DBMS on toteutettu C-kirjaston muodossa, joka on liitetty sovelluksiin ja jakelija Apache 2.0 -lisenssillä (alkuperäinen SQLite toimitetaan julkisesti). Kielisidokset saatavilla Go.

Kirjasto on lisäosa olemassa olevaan SQLite-koodikantaan, joka lisää verkkoprotokollatuen useiden eri isännillä toimivan sovelluksen esiintymien yhdistämiseen. Dqlitella käännetty sovellus voi toimia omavaraisena vikasietoisena klusterina ulkoisista DBMS-järjestelmistä riippumatta. Käytännössä Canonical käyttää Dqlitea kontinhallintajärjestelmässään LXD. Kirjaston käyttöalueista mainitaan myös vikasietoisten esineiden internet -laitteiden ja prosessorien luominen järjestelmiin.
reuna- laskelmat.

Tietojen replikoinnin johdonmukaisuuden varmistamiseksi käytetään algoritmipohjaista konsensusmenetelmää lautta, jota käytetään projekteissa, kuten etcd, RethinkDB, CockroachDB ja OpenDaylight. Dqlite käyttää omaa asynkronista toteutustaan Alus, kirjoitettu C-kielellä. Valmiita kirjastoja käytetään yhteydenkäsittelyn multipleksoimiseen ja korutiinien käynnistämisen järjestämiseen libuv и libco.

Verrattuna vastaavaan projektiin rqlite,Dqlite tarjoaa täyden transaktiotuen, voi kommunikoida minkä tahansa C-projektin kanssa, sallii time()-funktion käytön ja käyttää kehyspohjaista replikointia SQL-käännöspohjaisen replikoinnin sijaan.

Dqliten ominaisuudet:

  • Suorita kaikki levy- ja verkkotoiminnot asynkronisesti;
  • Testisarjan saatavuus tietojen oikeellisuuden varmistamiseksi;
  • Alhainen muistin kulutus ja tehokas tiedonsiirto verkon yli;
  • Tietokannan ja tapahtumalokin pysyvä tallennus levylle (mahdollisuudella välimuistiin);
  • Nopea toipuminen epäonnistumisista;
  • Vakaa CLI-asiakas Go-kielellä, jota voidaan käyttää tietokannan alustamiseen, replikoinnin konfigurointiin ja solmujen yhdistämiseen/katkaisuun;
  • Tukee ARM-, X86-, POWER- ja IBM Z -arkkitehtuureja;
  • Raft-algoritmin toteutus on optimoitu minimoimaan viiveet tapahtumia tehtäessä.

Lähde: opennet.ru

Lisää kommentti