Iviki eledlule ICanonical imemezele ukukhishwa kwenguqulo enkulu yephrojekthi ye-Dqlite 1.0, wenza injini ye-SQL Imithetho eyakhelwe ngaphakathi ye-SQLite esekela ukuphindaphindeka kwedatha, ukubuyiselwa kwenhlekelele okuzenzakalelayo, nokubekezelelana kwamaphutha ngokuvula ama-node amaningi.
I-Dqlite ilabhulali engu-C Isebenzisa injini yedatha ephindaphindwayo ne-SQL enokutholakala okuphezulu ne-failover ezenzakalelayo. Isiqu esithi "dqlite" simele "i-Distributed SQLite", okusho ukuthi i-dqlite inweba i-SQLite nge-protocol yenethiwekhi engaxhuma izimo eziningi zohlelo lwakho lokusebenza futhi izenze zisebenze njengeqoqo elitholakala kakhulu, ngaphandle kokuncika kulwazi lwangaphandle.
Njengoba kushiwo i-DBMS isetshenziswa ngendlela yelabhulali engu-C enamathiselwe ezinhlelweni zokusebenza futhi isatshalaliswa ngaphansi kwelayisense le-Apache 2.0 (i-SQLite yangempela inikezwa kusizinda somphakathi). Umtapo wezincwadi uyi-plugin ngesisekelo sekhodi ekhona ye-SQLite, engeza ukusekelwa kweprotocol yenethiwekhi ukuxhumanisa izimo eziningi zohlelo lokusebenza olusebenza kubaphathi abahlukahlukene.
Uhlelo lokusebenza olwakhiwe nge-Dqlite lungasebenza njengeqoqo le-failover ngephutha elizimele, ezimele kwi-DBMS yangaphandle.
Ngokwenzayo, ICanonical isebenzisa iDqlite ohlelweni lokuphathwa kweziqukathi ze-LXD. Phakathi kwezindawo ezisetshenziswayo zomtapo wezincwadi, ukwakhiwa kwamadivayisi we-Intanethi abekezelela amaphutha nama-processor ezinhlelweni zekhompyutha ze-Edge nakho kuyashiwo.
Ukuqinisekisa ukungaguquguquki kokuphindaphindeka kwedatha, kusetshenziswa indlela yokuvumelana esuselwa ku-Raft algorithm, esetshenziswa kumaphrojekthi afana ne-etcd, RethinkDB, CockroachDB, ne-OpenDaylight. I-Dqlite isebenzisa ukuqaliswa kwayo kwe-C-raft yayo eyinqaba, ebhalwe kuC.
Ukuphindaphinda ukucubungula ukuxhumana nokuhlela ukwethulwa kwama-coroutines, kusetshenziswa imitapo yolwazi elungiselelwe i-libuv ne-libco.
Uma kuqhathaniswa nephrojekthi efanayo ye-rqlite, i-Dqlite inikeza ukuxhaswa okugcwele kokuthengiselana, ingaxhumana nanoma iyiphi iphrojekthi ye-C, ikuvumela ukuthi usebenzise umsebenzi we-time (), futhi isebenzise ukuphindaphindeka okususelwa kuhlaka esikhundleni sokuphindaphindeka okususelwa kunkulumo ye-SQL.
Okwezici ezingagqanyiswa ku-Dqlite yilezi ezilandelayo:
- Yenza yonke imisebenzi yediski nenethiwekhi ngemodi ye-asynchronous
- Ukuba khona kweqoqo lezivivinyo ukuqinisekisa ukunemba kwedatha
- Ukusetshenziswa kwememori okuphansi nokushintshaniswa kwedatha okusebenzayo kunethiwekhi
- Isitoreji sediski esihlala njalo sedatha yediski nelog yokuthengiselana (enekhono lokugcina isikhashana kwimemori)
- Ukululama okusheshayo ngemuva kokwehluleka
- Iklayenti elizinzile le-CLI ngolimi lwe-Go, olungasetshenziswa ukuqala i-database, ukulungisa ukuphindaphindeka nokuxhuma / ukunqamula ama-node
- Ukusekelwa kobuciko be-ARM, i-X86, AMANDLA, ne-IBM Z
- Ukuqaliswa kwe-Raft algorithm kuthuthukisiwe ukunciphisa ukubambezeleka kokuthengiselana.
- Ukuqaliswa kwentambo eyodwa kwe-Asynchronous kusetshenziswa i-libuv njenge-loop yomcimbi.
- Iphrothokholi yocingo yangokwezifiso elungiselelwe izinhlobo zokuqala ze-SQLite nezinhlobo zedatha.
- Ukuphindaphindeka kwedatha okususelwa ku-Raft algorithm nokusebenza kwayo okusebenzayo ku-C-raft.
Ungayifaka kanjani i-Dqlite ku-Ubuntu nakwezinye izinto?
ICanonical inikeza imininingwane yokuthi ungalakha kanjani iklayenti ukuze lisebenzisane neDqlite, ungakuthola lokhu Kulesi sixhumanisi esilandelayo.
Manje ngokufaka umtapo wezincwadi ohlelweni, Lokhu kungafakwa ngezindlela ezimbili kulabo abangabasebenzisi be-Ubuntu noma okunye okuphuma kukho. ICanonical inikeza iPPA lapho ingatholakala khona ngendlela elula.
Le PPA ingangezwa kusuka esigungwini bese isebenzisa imiyalo elandelayo kuyo:
sudo add-apt-repository ppa:dqlite/v1 sudo apt-get update sudo apt-get install libdqlite-dev
Enye indlela yokufaka lo mtapo wezincwadi ukuhlanganisa kwalokhu kusistimu ngakho-ke le kuyindlela ejwayelekile yokusabalalisa Ubuntu kanye nokunye ukusatshalaliswa kweLinux.
Ukuze benze lokhu, kufanele bavule ukuphela bese benza imiyalo elandelayo:
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 ..
Lapho yonke imitapo yolwazi edingekayo ifakiwe, ukuze wakhe umtapo wolwazi owabiwe nge-dqlite, ungaqalisa:
autoreconf -i ./configure make sudo make install