Kutolewa kwa DBMS iliyopachikwa ya utendakazi wa juu libmdbx 0.11.3

Maktaba ya libmdbx 0.11.3 (MDBX) ilitolewa kwa utekelezaji wa hifadhidata ya ufunguo wa utendakazi wa hali ya juu iliyopachikwa. Msimbo wa libmdbx umepewa leseni chini ya Leseni ya Umma ya OpenLDAP. Mifumo yote ya sasa ya uendeshaji na usanifu unasaidiwa, pamoja na Elbrus 2000 ya Kirusi. Mwishoni mwa 2021, libmdbx inatumika kama uhifadhi wa nyuma katika wateja wawili wa haraka wa Ethereum - Erigon na "Shark" mpya, ambayo, kulingana na inapatikana. habari, ndiye mteja wa Ethereum wa utendaji wa juu zaidi.

Kihistoria, libmdbx ni urekebishaji wa kina wa LMDB DBMS na ni bora kuliko babu yake katika kutegemewa, kuweka vipengele na utendaji. Ikilinganishwa na LMDB, libmdbx inasisitiza sana ubora wa msimbo, uthabiti wa API, majaribio na ukaguzi wa kiotomatiki. Huduma ya kuangalia uadilifu wa muundo wa hifadhidata na uwezo fulani wa uokoaji hutolewa.

Kiteknolojia, libmdbx inatoa ACID, urekebishaji thabiti wa mabadiliko, na usomaji usiozuia kwa kuongeza mstari kwenye viini vya CPU. Urekebishaji kiotomatiki, usimamizi wa saizi ya hifadhidata otomatiki, na ukadiriaji wa hoja mbalimbali unatumika. Tangu 2016, mradi huo umefadhiliwa na Positive Technologies na umetumika katika bidhaa zake tangu 2017.

libmdbx inatoa API ya C++, pamoja na vifungo vya lugha vinavyoungwa mkono na wapenda Rust, Haskell, Python, NodeJS, Ruby, Go, na Nim.

Ubunifu mkuu, maboresho na masahihisho yaliyoongezwa tangu habari za awali mnamo Oktoba 11:

  • API ya C++ inachukuliwa kuwa tayari kutumika.
  • Usasishaji wa data ya GC wakati wa kufanya shughuli kubwa umeharakishwa kwa kiasi kikubwa, ambayo ni muhimu sana wakati wa kutumia libmdbx katika mfumo wa ikolojia wa Ethereum.
  • Saini ya ndani ya umbizo la hifadhidata imebadilishwa ili kusaidia usasishaji otomatiki, ambao ni wazi kabisa kwa watumiaji. Hii hukuruhusu kuondoa ujumbe chanya kuhusu upotovu wa hifadhidata wakati matoleo ya zamani ya maktaba yanatumiwa kusoma miamala iliyorekodiwa na matoleo ya sasa.
  • Vitendaji vilivyoongezwa mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() na mdbx_env_get_syncbytes(). Usaidizi umeongezwa kwa uendeshaji wa MDBX_SET_UPPERBOUND.
  • Maonyo yote wakati wa kujenga na vikusanyaji vyote vinavyotumika katika aina za C++ 11/14/17/20 yameondolewa. Utangamano na wakusanyaji wa urithi umehakikishwa: clang kuanzia 3.9, gcc kuanzia 4.8, ikijumuisha kuunganisha kwa kutumia cdevtoolset-9 kwa CentOS/RHEL 7.
  • Imerekebisha uwezekano wa mzozo wa ukurasa wa meta baada ya kubadili mwenyewe kwa ukurasa maalum wa meta kwa kutumia matumizi ya mdbx_chk.
  • Imerekebisha hitilafu isiyotarajiwa ya MDBX_PROBLEM inayorejeshwa wakati wa kubatilisha kurasa za meta za urithi.
  • Imerekebisha urejeshaji wa MDBX_NOTFOUND katika kesi ya ulinganifu usio sawa wakati wa kushughulikia ombi la MDBX_GET_BOTH.
  • Imerekebisha hitilafu ya utungaji kwenye Linux kwa kukosekana kwa faili za kichwa zenye maelezo ya miingiliano na kernel.
  • Imerekebisha mgongano kati ya bendera ya ndani ya MDBX_SHRINK_ALLOWED na chaguo la MDBX_ACCEDE.
  • Ukaguzi kadhaa usio wa lazima umeondolewa.
  • Imerekebisha urejeshaji usiotarajiwa wa MDBX_RESULT_TRUE kutoka kwa chaguo la kukokotoa la mdbx_env_set_option().
  • Kwa jumla, zaidi ya mabadiliko 90 yalifanywa kwa faili 25, ~ laini 1300 ziliongezwa, ~600 zilifutwa.

Chanzo: opennet.ru

Kuongeza maoni