Kompania Canonical në mënyrë të konsiderueshme (SQLite e shpërndarë), një motor SQL i integruar që është i pajtueshëm me SQLite, që mbështet replikimin e të dhënave, rikuperimin automatik nga dështimet dhe sigurimin e qëndrueshmërisë përmes shpërndarjes së trajtuesve në disa nyje. Baza e të dhënave është realizuar si një bibliotekë C që e bashkangjitet me aplikacionet dhe në përputhje me licencën Apache 2.0 (SQLite origjinale është e disponueshme si pronë e përbashkët). Ka lidhje të disponueshme për gjuhën .
Biblioteka është një shtesë mbi bazën e kodit ekzistues të SQLite që shton mbështetje për protokollin rrjetësor për të lidhur disa instance aplikacioni që janë duke u ekzekutuar në hoste të ndryshëm. Një aplikacion i mbledhur me Dqlite mund të funksionojë si një klaster i qëndrueshëm, i pavarur nga bazat e të dhënave të jashtme. Në praktikë, Dqlite përdoret nga Canonical në sistemin e menaxhimit të kontejnerëve . Mes fushave të aplikimit të bibliotekës përmenden gjithashtu krijimi i pajisjeve të qëndrueshme të internetit të gjërave dhe trajtues të sistemeve
.
Për të siguruar një qëndrim të paanshëm gjatë replikimit të të dhënave, aplikohet një metodë për të arritur konsensus bazuar në algoritmin , i cili përdoret në projekte të tilla si etcd, RethinkDB, CockroachDB dhe OpenDaylight. Në Dqlite aplikohet një realizim i veçantë asinkron i , i shkruar në gjuhën C. Për shumëfishimin e përpunimit të lidhjeve dhe organizimin e fillimit të korutinave përdoren biblioteka të gatshme dhe .
Në krahasim me projektin e ngjashëm , Dqlite siguron mbështetje të plotë për transaksionet, mund të lidhet me çdo projekt në gjuhën C, lejon përdorimin e funksionit time() dhe aplicon replikim të bazuar në kadra në vend të replikimit të bazuar në transmetimin e shprehjeve SQL.
Karakteristikat e Dqlite:
- Kryerja e të gjitha operacioneve të diskut dhe rrjetit në mënyrë asinkrone;
- Prania e një tabori testues për të konfirmuar korrektësinë e të dhënave;
- Konsum të ulët të memories dhe shkëmbim efikas të të dhënave në rrjet;
- Ruajtje të vazhdueshme në disk të bazës së të dhënave dhe logut të transaksioneve (me mundësinë e cache në memorie);
- Rikuperim të shpejtë pas dështimeve;
- Një klient CLI të qëndrueshëm në gjuhën Go, i cili mund të përdoret për të iniciuar bazën e të dhënave, për të konfiguruar replikimin dhe për të lidhur/ç lidhur nyjat;
- Mbështetje për arkitekturën ARM, X86, POWER dhe IBM Z;
- Implementimi i algoritmit Raft është optimizuar për të minimalizuar vonesat gjatë konfirmimit të transaksioneve.
Burimi: opennet.ru
