I-libmdbx v1.0 yesibili yokukhishwa ngemva kweminyaka emihlanu yokuthuthuka.

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

Engeza amazwana