Errendimendu handiko kapsulatutako DBMS libmdbx 0.11.3 kaleratzea

libmdbx 0.11.3 (MDBX) liburutegia errendimendu handiko kapsulatutako gako-balioen datu-base trinko baten ezarpenarekin kaleratu zen. libmdbx kodea OpenLDAP Lizentzia Publikoaren lizentziapean dago. Egungo sistema eragile eta arkitektura guztiak onartzen dira, baita Errusiako Elbrus 2000 ere. 2021aren amaieran, libmdbx biltegiratze backend gisa erabiltzen da Ethereum bezero bizkorrenetan - Erigon eta "Shark" berrian, eskuragarri dagoenaren arabera. informazioa, errendimendu handieneko Ethereum bezeroa da.

Historikoki, libmdbx LMDB DBMSren birdiseinu sakona da eta bere jatorria gainditzen du fidagarritasunari, ezaugarri multzoari eta errendimenduari dagokionez. LMDBrekin alderatuta, libmdbx-ek kodearen kalitatea, API egonkortasuna, probak eta egiaztapen automatizatuak jartzen ditu arreta. Datu-basearen egituraren osotasuna egiaztatzeko utilitate bat eskaintzen da berreskuratzeko aukera batzuekin.

Teknologiari dagokionez, libmdbx-ek ACID, aldaketaren serializazio sendoa eta blokeorik gabeko irakurketak eskaintzen ditu PUZaren nukleoetan eskalatze linealarekin. Trinkotze automatikoa, datu-basearen tamainaren kudeaketa automatikoa eta barrutiaren kontsultaren estimazioa onartzen dira. 2016az geroztik, Positive Technologies-ek finantzatu du proiektua eta 2017tik erabiltzen da bere produktuetan.

libmdbx-ek C++ API bat eskaintzen du, baita Rust, Haskell, Python, NodeJS, Ruby, Go eta Nim-entzako zaleek onartzen dituzten hizkuntza-loturak ere.

Urriaren 11ko aurreko albisteaz geroztik gehitutako berrikuntza, hobekuntza eta zuzenketa nagusiak:

  • C++ APIa erabiltzeko prest dago.
  • Transakzio handiak egitean GC datuen eguneratzea nabarmen azkartu da, eta hori bereziki garrantzitsua da Ethereum ekosisteman libmdbx erabiltzean.
  • Datu-basearen formatuaren barne sinadura aldatu egin da eguneratze automatikoa onartzeko, erabiltzaileentzat guztiz gardena dena. Horri esker, datu-baseen ustelkeriari buruzko mezu positibo faltsuak ezaba ditzakezu liburutegiaren bertsio zaharkituak uneko bertsioek grabatutako transakzioak irakurtzeko erabiltzen direnean.
  • Gehitu dira mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() eta mdbx_env_get_syncbytes() funtzioak. MDBX_SET_UPPERBOUND eragiketaren laguntza gehitu da.
  • C++ 11/14/17/20 moduetan onartzen diren konpilatzaile guztiekin eraikitzean abisu guztiak ezabatu dira. Oinarrizko konpiladoreekin bateragarritasuna bermatuta dago: clang 3.9tik hasita, gcc 4.8tik hasita, CentOS/RHEL 9rako cdevtoolset-7 erabiliz muntatzea barne.
  • mdbx_chk utilitatea erabiliz meta orri jakin batera eskuz aldatu ondoren meta-orrialdearen gatazka izateko aukera konpondu da.
  • Oinarrizko meta-orriak gainidaztean itzultzen zen ustekabeko MDBX_PROBLEM errorea konpondu da.
  • MDBX_NOTFOUND itzultzea konpondu da bat-etortze zehatz bat izanez gero MDBX_GET_BOTH eskaera prozesatzen denean.
  • Konpilazio-errore bat konpondu da Linuxen, nukleoarekin interfazeen deskribapenekin goiburuko fitxategirik ez zegoelako.
  • MDBX_SHRINK_ALLOWED barneko banderaren eta MDBX_ACCEDE aukeraren arteko gatazka konpondu da.
  • Beharrezkoak ez diren hainbat egiaztapen ezabatu dira.
  • MDBX_RESULT_TRUE-ren ustekabeko itzulera konpondu da mdbx_env_set_option() funtziotik.
  • Guztira, 90 fitxategitan 25 aldaketa baino gehiago egin ziren, ~ 1300 lerro gehitu ziren, ~ 600 ezabatu ziren.

Iturria: opennet.ru

Gehitu iruzkin berria