Dqlite 1.0, distribuita versio de SQLite de Canonical, estas havebla

Kanonika eldonita signifa projekteldono Dqlite 1.0 (Distribuita SQLite), kiu evoluigas SQLite-kongruan enigitan SQL-motoron kiu apogas datumreproduktadon, aŭtomatan reakiron de fiaskoj, kaj misfunkciadon distribuante prizorgantojn tra multoblaj nodoj. La DBMS estas efektivigita en la formo de C-biblioteko alkroĉita al aplikoj kaj distribuita de sub la permesilo Apache 2.0 (la originala SQLite estas disponigita en la publika domajno). Disponeblaj lingvaj ligadoj Go.

La biblioteko estas aldonaĵo al la ekzistanta SQLite-kodbazo, kiu aldonas retprotokolsubtenon por interkonekti plurajn kazojn de aplikaĵo funkcianta sur malsamaj gastigantoj. Apliko kompilita kun Dqlite povas funkcii kiel memproviza erartolerema areto, sendependa de eksteraj DBMSoj. En praktiko, Dqlite estas uzata de Canonical en sia kontenera administradsistemo LXD. Inter la kampoj de apliko de la biblioteko, la kreado de mistoleremaj Interreto de Aĵoj-aparatoj kaj procesoroj en sistemoj ankaŭ estas menciita.
rando- kalkuloj.

Por certigi konsistencon en datenreproduktado, algoritm-bazita konsentmetodo estas uzita Floso, kiu estas uzata en projektoj kiel etcd, RethinkDB, CockroachDB kaj OpenDaylight. Dqlite uzas sian propran nesinkronan efektivigon C-floso, skribita en C-lingvo. Pretaj bibliotekoj estas uzataj por plurfiksi ligpretigon kaj organizi la lanĉon de korutinoj libuv и libco.

Kompare kun simila projekto rqlite,Dqlite provizas plenan transakcian subtenon, povas komuniki ,kun iu ajn C-projekto, permesas la uzon de la tempo() funkcio, kaj ,uzas kadro-bazitan reproduktadon anstataŭ SQL-traduk-bazitan ,reproduktadon.

Karakterizaĵoj de Dqlite:

  • Plenumu ĉiujn diskojn kaj retajn operaciojn nesinkrone;
  • Havebleco de testaro por konfirmi la ĝustecon de la datumoj;
  • Malalta memorkonsumo kaj efika interŝanĝo de datumoj tra la reto;
  • Konstanta konservado de la datumbazo kaj transakcia protokolo sur disko (kun la ebleco de kaŝmemoro en memoro);
  • Rapida reakiro de malsukcesoj;
  • Stabila CLI-kliento en Go-lingvo, kiu povas esti uzata por pravalorigi la datumbazon, agordi reproduktadon kaj konekti/malkonekti nodojn;
  • Subtenas arkitekturojn ARM, X86, POWER kaj IBM Z;
  • La efektivigo de la Raft-algoritmo estas optimumigita por minimumigi prokrastojn dum transakcioj.

fonto: opennet.ru

Aldoni komenton