umtapo libmdbx iyinzalo eklanywe kabusha ngokuphawulekayo ye-LMDB - isizindalwazi senani lokhiye esebenza kakhulu, egxilile.
Inguqulo yamanje i-v0.5 iwukukhululwa kobuchwepheshe, iphawula ukuqedwa kwanoma yikuphi ukuthuthukiswa kanye nokushintshela esigabeni sokuhlolwa komphakathi kokugcina nokuzinzisa, ngokwakhiwa okulandelayo kokukhishwa okugcwele kokuqala komtapo wolwazi.
I-LMDB iyinani lokhiye elishumekiwe elishumekiwe le-DBMS elisuselwe kulo isihlahla B+ ngaphandle ukugawula okusebenzayo, okuvumela uquqaba lwezinqubo ezinezintambo eziningi ukuthi zisebenze ngokuncintisana nangempumelelo ngokwedlulele ngesizindalwazi esabiwe endaweni (hhayi inethiwekhi). Ngokulandelayo, i-MDBX iyashesha futhi ithembekile kune-LMDB, kuyilapho i-libmdbx igcina zonke izici ezibalulekile zokhokho wayo, njenge I-ACID nokufunda okungavimbeli ngokukala ngomugqa kuwo wonke ama-CPU cores, futhi kwengeza amasha amaningana.
Incazelo yomehluko nokuthuthukiswa kwe-libmdbx ehlobene ne-LMDB ifanele i-athikili ehlukile (ehlelelwe ukuthi ishicilelwe ku-Habré and Medium). Lapha kufanelekile ukusho okubaluleke kakhulu nokubonakalayo:
- Ngokuyisisekelo, ukunakwa okwengeziwe kukhokhelwa ikhwalithi yekhodi, ukuhlolwa nokuhlola okuzenzakalelayo.
- Ukulawula okuphawulekayo ngesikhathi sokusebenza, kusukela ekuhloleni imingcele kuya ekucwaningweni kwangaphakathi kwezakhiwo zesizindalwazi.
- Ukuhlanganisa okuzenzakalelayo kanye nokuphathwa kosayizi wesizindalwazi okuzenzakalelayo.
- Ifomethi yesizindalwazi esisodwa sama-32-bit kanye namabhithi angama-64.
- Isilinganiso sosayizi wesampula ngobubanzi (isilinganiso sombuzo wobubanzi).
- Ukusekela okhiye abakhulu ngokuphindwe kabili kunamakhekhe kanye nosayizi wekhasi lesizindalwazi elingakhethwa umsebenzisi.
Ikhandidethi lokukhishwa kwe-libmdbx liwumphumela wesinqumo (bona ngezansi) sokuhlukanisa iphrojekthi ye-MDBX ne-MithrilDB ngo-Agasti 2019. Ngesikhathi esifanayo, i-libmdbx inqume ukuqeda isikweletu esikhulu (esinengqondo) sobuchwepheshe futhi izinze umtapo wolwazi. Eqinisweni, izikhathi ezi-2-3 eziningi zenziwe ngendlela ebekiwe kunalokho okwakulinganiselwe futhi kwahlelwa ekuqaleni:
- Ukusekelwa kwe-Mac OS kanye nezinkundla zesigaba sesibili sekwenziwe: I-FreeBSD, i-Solaris, i-DragonFly BSD, i-OpenBSD, i-NetBSD. Ukusekelwa kwe-AIX ne-HP-UX kungangezwa njengoba kudingeka.
- Kungcoliswe ikhodi kusetshenziswa i-Undefined Behavior Sanitizer kanye ne-Sanitizer Yekheli, kwasusa zonke izixwayiso lapho kwakhiwe nge--Wpedantic, zonke izexwayiso ze-Coverity Static Analyser, njll.
- Buyekeza Izincazelo ze-API.
- Ukuhlanganiswa kwekhodi yomthombo ukuze kube lula ukushumeka.
- CMake ukwesekwa.
- Ukusekela kokwenziwayo okufakwe esidlekeni.
- Kusetshenziswa i-bootid ukuthola ukuthi i-OS isiqalile yini kabusha (i-database stop engcolile).
- Ukubala kuya ekupheleni kwamakhasi abuyekeziwe/amadala kanye nolwazi olunwetshiwe lokwenziwe.
- Inketho MDBX_ACCEDE yokuxhuma kusizindalwazi esivele sivuliwe ngemodi ehambisanayo.
- Sebenzisa I-OFD iyavimba uma ikhona.
- Ikhophi yasenqolobaneni eshisayo.
- I-algorithm ekhethekile yokuhlunga yangaphakathi (efika izikhathi ezi-2-3 ngokushesha kune-qsort() futhi ifika ku-30% ngokushesha kune-std::sort()).
- Ubude obukhulu bokhiye bunyusiwe.
- Ukulawula okuzenzakalelayo kokufunda kusengaphambili (isu lokulondoloza ifayela lesizindalwazi enkumbulweni).
- Ukuhlanganisa okuzenzakalelayo okunolaka nokushesha.
- Isu elilunge kakhulu lokuhlanganisa amakhasi esihlahla se-B+.
- Ukulawulwa kwezinhlelo zamafayela okungewona awendawo (i-NFS, i-Samba, njll.) ukuze kuvinjelwe ukulimala kwesizindalwazi uma sisetshenziswa ngokungalungile.
- Isethi yokuhlola inwetshiwe.
Ukuthuthukiswa kwenguqulo "elandelayo" ye-libmdbx kuzoqhubeka njengephrojekthi ehlukile I-MithrilDB, kuyilapho i-vector yokuthuthukisa yenguqulo “yamanje” ye-MDBX ihloselwe ukufriza isethi yesici nokuyiqinisa. Lesi sinqumo senziwe ngezizathu ezintathu:
- Akuhambisani nhlobo: I-MithrilDB idinga ifomethi yefayela lesizindalwazi ehlukile (engahambelani) kanye ne-API ehlukile (engahambelani) ukuze isebenzise zonke izici ezihleliwe.
- Ikhodi entsha yomthombo: Ikhodi yomthombo ye-MithrilDB yenziwe yanelayisense yokuzimela ku-LMDB, futhi iphrojekthi ngokwayo ihlelelwe ukuthi ishicilelwe ngaphansi kwelayisensi ehlukile (evunywe NOMA UMA ilayisense I-Apache 2.0kodwa cha I-OpenLDAP Foundation).
- Ukwehlukaniswa kugwema ukudideka okungaba khona, kunikeza isiqiniseko esiningi, futhi kuqinisekisa ukuthi amaphrojekthi anendlela ezimele eya phambili.
I-MithrilDB, njenge-MDBX, nayo isekelwe ku isihlahla B+ futhi izofaka nokusebenza okuphezulu kakhulu, kuyilapho isusa inani lezinto ezimbi eziyisisekelo ze-MDBX ne-LMDB. Ikakhulukazi, inkinga "yokufunda isikhathi eside", ebonakala ngokuthi "ukuvuvukala" kwe-database ngenxa yokuthi ukucubungula udoti kuvinjwe ukuthengiselana kokufunda isikhathi eside, kuzoqedwa. Izici ezintsha zeMithrilDB zifaka:
- ukwesekwa kokubeka isizindalwazi kumidiya eminingana ehlukahlukene: i-HDD, i-SSD nenkumbulo engaguquki.
- amasu alungile “wenani” kanye “nenani eliphansi”, ledatha “eshisayo”, “efudumele” kanye “nebanda”.
- usebenzisa isihlahla se-Merkle ukuqapha ubuqotho besizindalwazi.
- ukusetshenziswa kokuzithandela kwe-WAL nokusebenza okuphezulu kakhulu kuzimo ezibhala kakhulu neziqinisekiso zobuqotho bedatha.
- Ukulungiswa kokuvilapha kwedatha kumadiski.
Source: linux.org.ru