Ukukhutshwa kokusebenza okuphezulu okufakwe kwi-DBMS libmdbx 0.11.3

Ithala leencwadi le-libmdbx 0.11.3 (MDBX) lakhululwa ngokuphunyezwa kogcino-lwazi lwexabiso elingundoqo elisebenza ngokudibeneyo. Ikhowudi ye-libmdbx inikwe ilayisenisi phantsi kweLayisensi yoLuntu ye-OpenLDAP. Zonke iinkqubo zokusebenza zangoku kunye nezakhiwo zezakhiwo zixhaswa, kunye ne-Elbrus yaseRashiya 2000. Ekupheleni kwe-2021, i-libmdbx isetyenziswe njenge-backend yokugcina kubathengi ababini be-Ethereum abakhawulezayo - i-Erigon kunye ne-"Shark" entsha, ngokutsho okukhoyo. ulwazi, ngowona mthengi we-Ethereum osebenza kakhulu.

Ngokwembali, i-libmdbx kukuphinda kusetyenzwe ngokunzulu kwe-LMDB DBMS kwaye iphakamile kunokhokho wayo ngokuthembeka, iseti yeempawu kunye nokusebenza. Xa kuthelekiswa ne-LMDB, i-libmdbx ibeka ugxininiso oluninzi kumgangatho wekhowudi, ukuzinza kwe-API, uvavanyo, kunye nokuhlola okuzenzekelayo. Isixhobo sokujonga imfezeko yolwakhiwo lwesiseko sedatha kunye nesakhono sokubuyisela sinikezelwe.

Itekhnoloji yobulumko, i-libmdbx ibonelela nge-ACID, uhlengahlengiso oluluqilima, kunye nokufundwa okungathinteliyo kunye nokukalwa komda kwii-CPU cores. I-auto-compaction, ulawulo lobungakanani bedatabase oluzenzekelayo, kunye noqikelelo loluhlu lwemibuzo luyaxhaswa. Ukususela ngo-2016, iprojekthi ixhaswe ngemali yi-Positive Technologies kwaye isetyenziswe kwiimveliso zayo ukususela ngo-2017.

I-libmdbx inikezela nge-C++ API, kunye nezibophelelo zolwimi ezixhaswa ngumshisekeli kwiRust, Haskell, Python, NodeJS, Ruby, Go, kunye neNim.

Utshintsho olukhulu, uphuculo kunye nezilungiso ezongeziweyo ukusukela kwiindaba zangaphambili ngo-Okthobha 11:

  • I-C ++ API ithathwa njengelungele ukusetyenziswa.
  • Uhlaziyo lwedatha ye-GC xa kusenziwa ukuthengiselana okukhulu kuye kwakhawuleza kakhulu, okubaluleke ngakumbi xa usebenzisa i-libmdbx kwi-Ethereum ecosystem.
  • Isiginitsha yangaphakathi yefomathi yedatha itshintshiwe ukuxhasa uhlaziyo oluzenzekelayo, olubonakala elubala ngokupheleleyo kubasebenzisi. Oku kukuvumela ukuba uphelise imiyalezo engeyonyani malunga urhwaphilizo lwedathabheyisi xa iinguqulelo eziphelelwe lixesha zethala leencwadi zisetyenziselwa ukufunda iintengiselwano ezirekhodwe ziinguqulelo zangoku.
  • Imisebenzi eyongeziweyo mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() kunye ne mdbx_env_get_syncbytes(). Inkxaso eyongeziweyo yomsebenzi we-MDBX_SET_UPPERBOUND.
  • Zonke izilumkiso xa kwakhiwa kunye nabo bonke abaqulunqi abaxhaswayo kwiindlela ze-C ++ 11/14/17/20 ziphelisiwe. Ukuhambelana nabaqulunqi belifa kuqinisekiswa: i-clang iqala kwi-3.9, i-gcc iqala kwi-4.8, kuquka i-assembly usebenzisa i-cdevtoolset-9 ye-CentOS/RHEL 7.
  • Ukulungiswa okunokwenzeka kokungqubuzana kwephepha lemeta emva kokutshintshela ngesandla kwiphepha elithile lemeta usebenzisa i-mdbx_chk eluncedo.
  • Kulungiswe imposiso ebingalindelekanga MDBX_PROBLEM xa kubhalwa phezu kwamaphepha elifa lemveli.
  • Kulungisiwe ukubuyiswa kweMDBX_NOTFOUND kwimeko yomdlalo ongachanekanga xa kusetyenzwa isicelo seMDBX_GET_BOTH.
  • Kulungiswe imposiso yoqulunqo kwiLinux ngokungabikho kweefayile zeheader ezineenkcazelo zojongano olunekernel.
  • Kulungiswe impixano phakathi kwe MDBX_SHRINK_ALLOWED iflegi yangaphakathi kunye nokhetho lwe MDBX_ACCEDE.
  • Iitshekhi ezininzi ezingeyomfuneko ziye zapheliswa.
  • Kulungiswe imbuyekezo engalindelekanga ye MDBX_RESULT_TRUE ukusuka mdbx_env_set_option() umsebenzi.
  • Lilonke, ngaphezu kwe-90 utshintsho lwenziwa kwiifayile ze-25, i-~1300 imigca yongezwa, ~ 600 yacinywa.

umthombo: opennet.ru

Yongeza izimvo