Kutolewa kwa DBMS iliyopachikwa ya utendakazi wa juu libmdbx 0.10

Baada ya miezi mitatu ya usanidi, libmdbx 0.10.0 (MDBX) ilitolewa, ikitekeleza hifadhidata ya utendakazi wa hali ya juu, iliyopachikwa iliyopachikwa ya ufunguo-msingi. Msimbo wa libmdbx umepewa leseni chini ya Leseni ya Umma ya OpenLDAP. libmdbx ni urekebishaji wa kina wa LMDB DBMS na, kulingana na watengenezaji, ni bora kuliko babu yake katika kuegemea, anuwai ya uwezo na utendakazi. Inaelezwa kuwa libmdbx ina kasi ya hadi 20% kuliko LMDB katika hali za CRUD na hadi 30% haraka ikiwa udhibiti wa ndani utazimwa wakati wa kujenga libmdbx hadi kiwango kinacholingana na LMDB.

Libmdbx inatoa ACID, urekebishaji thabiti wa mabadiliko, na usomaji usiozuia ambao hupimwa kwa mstari kwenye viini vya CPU. Katika libmdbx, umakini mkubwa hulipwa kwa ubora wa nambari, operesheni thabiti ya API, majaribio na ukaguzi wa kiotomatiki. Inaauni urekebishaji kiotomatiki, usimamizi wa saizi ya hifadhidata otomatiki, umbizo moja la hifadhidata kwa makusanyiko ya biti 32 na 64, na ukadiriaji wa hoja mbalimbali. Huduma ya kuangalia uadilifu wa muundo wa hifadhidata na uwezo fulani wa uokoaji hutolewa. Tangu 2016, mradi huo umefadhiliwa na Positive Technologies na umetumika katika bidhaa zake tangu 2017, na vikwazo vilivyowekwa na serikali ya Marekani dhidi ya Positive Technologies havina athari yoyote inayoonekana.

Ubunifu mkuu, maboresho na marekebisho yaliyoongezwa tangu toleo la mwisho:

  • Kufunga Ruby na Mahlon E. Smith na toleo la majaribio la vifungo vya Python na Noel Kuntze vinapatikana, na vifungo vya GoLang na Alexey Sharov vimesasishwa.
  • Kwa hali ya "MDBX_WRITEMAP", data ya hifadhidata inapobadilishwa moja kwa moja kwenye RAM, "kumwagika kwa uwazi" kwa kurasa za hifadhidata zilizobadilishwa hadi diski hutekelezwa. Sasa, baada ya kukamilika kwa kila operesheni, kurasa kama hizo ziko tayari kabisa kuandikwa kwa diski na kernel ya OS inaweza kufuta kurasa zilizobadilishwa kwa diski kwa uhuru, na kufanya shughuli haitahitaji marekebisho yao. Kama matokeo, katika hali nyingi na RAM haitoshi, kiasi cha shughuli za diski kinaweza kupunguzwa hadi mara 2.
  • Uondoaji uliotekelezwa wa nakala za vivuli ambazo hazijatumika kwa muda mrefu za kurasa zilizorekebishwa, na upendeleo wa kuondolewa kwa kurasa zenye thamani kubwa/ndefu, ambazo katika idadi kubwa ya matukio hurekebishwa mara moja tu kwa kila shughuli. Matokeo yake ni kupungua kwa trafiki ya disk na kuboresha utendaji katika matukio na shughuli kubwa sana.
  • Imetumia hali ya "smart" ya kugawanya kurasa wakati wa kuingiza vitufe. Sasa, wakati wa kuingiza mlolongo ulioamriwa, kurasa zinajazwa kiotomatiki kabisa, na katika hali zingine mti una usawa zaidi. Kama matokeo, kwa wastani, kurasa za hifadhidata zinajazwa kwa njia bora zaidi na mti wa B una usawa zaidi, ambao una athari nzuri juu ya utendaji.
  • Takwimu za uendeshaji na kurasa zimeongezwa, ambayo inakuwezesha kukadiria kwa usahihi gharama ya kurekebisha shughuli na hifadhidata.
  • Zaidi ya hitilafu na hitilafu kadhaa zimerekebishwa, ikijumuisha: matatizo ya kujenga kwa kutumia MinGW, kwa kutumia `std::filesystem::path` katika iOS <= 13.0, jengo linalolenga matoleo ya zamani ya Windows, n.k.
  • Kwa jumla, zaidi ya mabadiliko 200 yalifanywa kwa faili 66, ~ laini 6500 ziliongezwa, ~4500 zilifutwa.

Kwa kando, ningependa kutambua chaguo la mradi wa Turbo-Geth (uma turbo ya Go-Ethereum) libmdbx kama njia mpya ya uhifadhi, na pia nishukuru timu ya mradi (haswa Alexey Sharov, Artyom Vorotnikov na Alexey Akhunov) kwa wao. msaada mkubwa katika upimaji katika hali za utumiaji uliokithiri. Hasa, kasoro katika udhibiti wa kusoma-mbele/akibi uligunduliwa na kuondolewa, ambayo ilisababisha uharibifu wa utendaji katika matukio magumu ya kuzaliana na hifadhidata kubwa.

Chanzo: opennet.ru

Kuongeza maoni