Emva kweenyanga ezintathu zophuhliso, i-libmdbx 0.10.0 (MDBX) yakhululwa, izalisekisa i-high-performance, i-compact embedded key-value database. Ikhowudi ye-libmdbx inikwe ilayisenisi phantsi kweLayisensi yoLuntu ye-OpenLDAP. I-libmdbx kukuphinda kusetyenzwe ngokunzulu kwe-LMDB DBMS kwaye, ngokutsho kwabaphuhlisi, iphezulu kunokhokho wayo ngokuthembeka, uluhlu lwezakhono kunye nokusebenza. Kuxelwa ukuba i-libmdbx ifikelela kwi-20% ngokukhawuleza kune-LMDB kwiimeko ze-CRUD kwaye ifike kwi-30% ngokukhawuleza ukuba ulawulo lwangaphakathi lukhutshaziwe kwinqanaba elinokuthelekiswa ne-LMDB xa kwakhiwa i-libmdbx.
I-Libmdbx ibonelela nge-ACID, uhlengahlengiso oluluqilima, kunye nokungathinteli ukufunda okukala ngokulandelelana kwii-CPU cores. Kwi-libmdbx, ingqwalasela eninzi ihlawulwa kumgangatho wekhowudi, ukusebenza okuzinzile kwe-API, ukuvavanywa kunye nokukhangela ngokuzenzekelayo. Ixhasa i-auto-compactification, ulawulo lobungakanani bedatha ngokuzenzekelayo, ifomathi yedatha enye yee-32-bit kunye ne-64-bit yeassemblies, kunye noluhlu lombuzo woqikelelo. Isixhobo sokujonga imfezeko yolwakhiwo lwesiseko sedatha kunye nesakhono sokubuyisela sinikezelwe. Ukususela ngo-2016, iprojekthi ixhaswe ngemali yi-Positive Technologies kwaye isetyenziswe kwiimveliso zayo ukususela ngo-2017, kwaye izigwebo ezibekwe ngurhulumente wase-US ngokuchasene ne-Positive Technologies ayinayo nayiphi na impembelelo ebonakalayo.
Iinguqulelo ezinkulu, uphuculo kunye nokulungiswa okongeziweyo okoko kukhululwe okokugqibela:
- I-Ruby ebophelelayo ngu-Mahlon E. Smith kunye nenguqulo yesilingo ye-Python bindings nguNoel Kuntze iyafumaneka, kwaye i-GoLang yokubopha ngu-Alexey Sharov ihlaziywe.
- Kwimo ye "MDBX_WRITEMAP", xa idatha yedatha iguqulwa ngokuthe ngqo kwi-RAM, "ukuchitheka okucacileyo" kwamaphepha edatha atshintshiweyo kwidisk kuphunyezwa. Ngoku, emva kokugqitywa komsebenzi ngamnye, amaphepha anjalo ngokukhawuleza alungele ukubhalwa kwidiski kwaye i-OS kernel inokuzimela ngokuzimeleyo amaphepha atshintshiweyo kwidiski, kwaye ukwenza intengiselwano akuyi kufuna ukulungiswa kwabo. Ngenxa yoko, kwiimeko ezixakekileyo kunye ne-RAM enganeleyo, umthamo wemisebenzi yediski ungancitshiswa ukuya kuma-2 amaxesha.
- Ukukhutshwa okuphunyeziweyo kweekopi zethunzi ezinde ezingasetyenziswayo zamaphepha alungisiweyo, ngokukhetha ukukhutshwa kwamaphepha anexabiso elikhulu/elide, apho uninzi lweemeko zilungiswa kube kanye kuphela ngentengiselwano. Isiphumo sinciphisa i-disk traffic kunye nokusebenza okuphuculweyo kwiimeko ezinokuthengiselana okukhulu kakhulu.
- Yenziwe "smart" indlela yokwahlula amaphepha xa ufaka izitshixo. Ngoku, xa ufaka ulandelelwano olucwangcisiweyo, amaphepha azaliswa ngokuzenzekelayo, kwaye kwezinye iimeko, umthi ulungelelaniswa ngokufanelekileyo. Ngenxa yoko, ngokomyinge, amaphepha e-database azaliswe ngokugqithiseleyo kwaye i-B-tree ilungelelene ngakumbi, enefuthe elihle ekusebenzeni.
- Izibalo zokusebenza kunye namaphepha zongeziwe, ezikuvumela ukuba uqikelele ngokuchanekileyo iindleko zokuguqulwa kwemisebenzi kunye nedatha.
- Kulungiswe iimpazamo neempazamo ezingaphezulu kweshumi elinesibini, kuquka: iingxaki zokwakha ngeMinGW, kusetyenziswa i-`std::filesystem::path` kwi-iOS <= 13.0, ukwakha ngokujolisa kwiinguqulelo ezindala. Windows njalo njalo.
- Lilonke, ngaphezu kwe-200 utshintsho lwenziwa kwiifayile ze-66, i-~6500 imigca yongezwa, ~ 4500 yacinywa.
Ngokwahlukileyo, ndingathanda ukuqaphela ukhetho lweprojekthi ye-Turbo-Geth (ifolokhwe ye-turbo ye-Go-Ethereum) libmdbx njenge-backend yokugcina yokugcina, kwaye ndiyabulela iqela leprojekthi (ingakumbi u-Alexey Sharov, u-Artyom Vorotnikov no-Alexey Akhunov) ngenxa yabo. uncedo olukhulu kuvavanyo kwiimeko zokusetyenziswa kakhulu. Ngokukodwa, isiphene kulawulo lokufunda phambili/ugcino lwafunyanwa kwaye lwapheliswa, nto leyo ekhokelele ekuthotyweni komgangatho wokusebenza kwiimeko ekunzima ukuphinda zivelise kunye nogcino-lwazi olukhulu.
umthombo: opennet.ru
