Prošle nedelje Canonical je najavio izdavanje glavne verzije projekta Dqlite 1.0, razvijate SQL engine Ugrađeni SQLite kompatibilan koji podržava replikaciju podataka, automatski oporavak od katastrofe i toleranciju grešaka obuhvaćajući više čvorova.
Dqlite je C biblioteka Primjenjuje replicirani i SQL mehanizam baze podataka s velikom dostupnošću i automatskim otkazivanjem. Skraćenica "dqlite" označava "Distributed SQLite", što znači da dqlite proširuje SQLite mrežnim protokolom koji može povezati više instanci vaše aplikacije i natjerati ih da djeluju kao visoko dostupni klaster, bez ovisnosti o vanjskim bazama podataka.
Kao što je spomenuto DBMS je implementiran u obliku C biblioteke pripojene aplikacijama i distribuira se pod licencom Apache 2.0 (originalni SQLite dostupan je u javnoj domeni). Biblioteka je dodatak na bazi postojećeg SQLite koda, koji dodaje podršku mrežnog protokola za povezivanje više instanci aplikacije koja se izvodi na različitim hostovima.
Aplikacija izgrađena s Dqliteom može funkcionirati kao klaster preusmjeravanja autonomnom greškom, neovisno o vanjskim DBMS-ima.
U praksi, Canonical koristi Dqlite u LXD sustavu za upravljanje spremnicima. Među područjima primjene biblioteke, također se spominje stvaranje uređaja i procesora Internet of Things otpornih na kvarove u Edge računskim sistemima.
Da bi se osigurala dosljednost replikacije podataka, koristi se metoda konsenzusa zasnovana na algoritmu Raft, koja se koristi u projektima poput etcd, RethinkDB, CockroachDB i OpenDaylight. Dqlite koristi vlastitu asinkronu implementaciju C-splava, napisanu na C.
Za multipleksiranje obrade veze i organiziranje pokretanja podprograma koriste se pripremljene biblioteke libuv i libco.
U usporedbi sa sličnim projektom rqlite, Dqlite pruža potpunu podršku za transakcije, može komunicirati s bilo kojim C projektom, omogućava vam upotrebu funkcije time () i koristi replikaciju zasnovanu na okviru umjesto replikacije bazirane na prijevodu SQL izraza.
Od karakteristika koje se mogu istaknuti u Dqliteu su sljedeće:
- Izvodite sve radnje na disku i mreži u asinhronom načinu
- Prisustvo niza testova za potvrđivanje tačnosti podataka
- Mala potrošnja memorije i efikasna razmjena podataka putem mreže
- Stalna memorija diska baze podataka i dnevnik transakcija (s mogućnošću predmemoriranja u memoriji)
- Brzi oporavak nakon kvarova
- Stabilni CLI klijent u jeziku Go, koji se može koristiti za inicijalizaciju baze podataka, konfiguriranje replikacije i povezivanje / odspajanje čvorova
- Podrška za ARM, X86, POWER i IBM Z arhitekture
- Implementacija algoritma Raft optimizirana je kako bi se smanjilo kašnjenje transakcija.
- Asinhrona jednonitna implementacija koja koristi libuv kao petlju događaja.
- Prilagođeni žičani protokol optimiziran za SQLite primitive i tipove podataka.
- Replikacija podataka zasnovana na algoritmu Raft i njegova efikasna implementacija u C-raft.
Kako instalirati Dqlite na Ubuntu i derivate?
Canonical pruža informacije o tome kako možete stvoriti klijenta za interakciju s Dqlite-om, možete to konzultirati Na sledećem linku.
Što se tiče instaliranja biblioteke na sistem, Ovo se može instalirati na dva načina za one koji su korisnici Ubuntu-a ili bilo koji drugi njegov derivat. Canonical nudi PPA odakle se to može dobiti na prilično jednostavan način.
Ovaj PPA može se dodati s terminala i izvršavati sljedeće naredbe u njemu:
sudo add-apt-repository ppa:dqlite/v1 sudo apt-get update sudo apt-get install libdqlite-dev
Drugi način instaliranja ove biblioteke je kompajliranje ovoga na sistemu, pa je ovo općenitija metoda i za Ubuntu i za druge Linux distribucije.
Da bi to učinili, trebaju samo otvoriti terminal i izvršiti sljedeće naredbe:
git clone --depth 100 https://github.com/canonical/sqlite.git cd sqlite ./configure --enable-replication make sudo make install cd .. git clone https://github.com/canonical/libco.git cd libco make sudo make install cd .. git clone https://github.com/canonical/raft.git cd raft autoreconf -i ./configure make sudo make install cd ..
Jednom kada su instalirane sve potrebne biblioteke, da biste izgradili dijeljenu biblioteku dqlite, možete pokrenuti:
autoreconf -i ./configure make sudo make install