Baada ya miezi mitatu ya uundaji, libmdbx 0.10.0 (MDBX) imetolewa, ikitekeleza hifadhidata ya thamani muhimu yenye utendaji wa hali ya juu, ndogo, na iliyopachikwa. Msimbo wa libmdbx umepewa leseni chini ya Leseni ya Umma ya OpenLDAP. libmdbx ni uandishi mpya mkubwa wa mfumo wa usimamizi wa hifadhidata ya LMDB na, kulingana na watengenezaji wake, unazidi mtangulizi wake katika uaminifu, seti ya vipengele, na utendaji. Libmdbx inadaiwa kuwa na kasi ya hadi 20% kuliko LMDB katika hali za CRUD, na hadi 30% haraka zaidi ikiwa ukaguzi wa ndani utazimwa hadi kiwango kinacholingana na LMDB wakati wa uundaji.
Libmdbx inatoa ACID, uainishaji mkali wa mabadiliko, na usomaji usiozuia wenye upimaji wa mstari kwenye viini vya CPU. Libmdbx inatilia mkazo sana ubora wa msimbo, uthabiti wa API, upimaji, na ukaguzi otomatiki. Inasaidia ujumuishaji otomatiki, usimamizi wa ukubwa wa hifadhidata otomatiki, umbizo la hifadhidata lililounganishwa kwa ajili ya ujenzi wa biti 32 na biti 64, na makadirio ya hoja za masafa. Huduma ya ukaguzi wa uadilifu wa muundo wa hifadhidata yenye uwezo fulani wa urejeshaji imejumuishwa. Tangu 2016, mradi huo umefadhiliwa na Positive Technologies na umetumika katika bidhaa zake tangu 2017. Vikwazo vya serikali ya Marekani dhidi ya Positive Technologies havijawa na athari yoyote inayoonekana.
Vipengele vipya muhimu, maboresho, na marekebisho yameongezwa tangu toleo la mwisho:
- Vifungo vya Ruby vya Mahlon E. Smith na vifungo vya Python vya Noel Kuntze sasa vinapatikana, na vifungo vya GoLang vya Alexey Sharov vimesasishwa.
- Kwa hali ya "MDBX_WRITEMAP", wakati data ya hifadhidata inabadilishwa moja kwa moja kwenye RAM, "kusafisha kwa uwazi" kwa kurasa za hifadhidata zilizobadilishwa kuwa diski kumetekelezwa. Sasa, baada ya kila operesheni kukamilika, kurasa hizi ziko tayari mara moja kuandikwa kwenye diski, na kiini cha OS kinaweza kusafisha kurasa zilizobadilishwa kiotomatiki kwenye diski, bila kuzihitaji zirekebishwe wakati wa kufanya muamala. Matokeo yake, katika hali zenye mzigo mwingi na RAM isiyotosha, kiasi cha shughuli za diski kinaweza kupunguzwa hadi mara 2.
- Kutekeleza uondoaji wa nakala za kivuli za kurasa zilizorekebishwa ambazo hazijatumika kwa muda mrefu, huku kukiwa na upendeleo wa uondoaji wa kurasa zenye thamani kubwa/ndefu, ambazo katika hali nyingi hurekebishwa mara moja tu kwa kila muamala. Hii hupunguza trafiki ya diski na kuboresha utendaji katika hali zenye miamala mikubwa sana.
- Hali ya "mahiri" ya kugawanya kurasa imetekelezwa kwa ajili ya kuingiza vitufe. Sasa, wakati wa kuingiza mfuatano uliopangwa, kurasa hujazwa kiotomatiki kabisa, na katika hali zingine, mti una usawazishaji bora zaidi. Kwa hivyo, kwa wastani, kurasa za hifadhidata hujazwa vyema zaidi, na mti wa B una usawazishaji zaidi, ambao unaathiri vyema utendaji.
- Imeongeza takwimu za uendeshaji wa ukurasa, kuruhusu makadirio sahihi ya gharama ya shughuli za urekebishaji wa hifadhidata.
- Устранено более десятка недочётов и ошибок, в том числе: решены проблемы со сборкой посредством MinGW, использования `std::filesystem::path` в iOS <= 13.0, сборка с таргетированием на старые версии Windows nk
- Kwa jumla, zaidi ya mabadiliko 200 yalifanywa kwa faili 66, ~ laini 6500 ziliongezwa, ~4500 zilifutwa.
Ningependa kupongeza mradi wa Turbo-Geth (uma wa turbo wa Go-Ethereum) kwa kuchagua libmdbx kama sehemu yake mpya ya hifadhi, na kuwashukuru timu ya mradi (hasa Alexey Sharov, Artem Vorotnikov, na Alexey Akhunov) kwa usaidizi wao mkubwa katika majaribio katika hali mbaya za matumizi. Hasa, walitambua na kurekebisha dosari katika usimamizi wa kusoma-mbele/hifadhi data ambayo ilikuwa ikisababisha uharibifu wa utendaji katika hali ngumu kuzaliana zenye hifadhidata kubwa.
Chanzo: opennet.ru
