Rilaxx tad-DBMS inkorporat libmdbx 0.13.2

Ir-rilaxx ta 'libmdbx 0.13.2 (MDBX) ġie ppubblikat, li jimplimenta database ta' valur ewlieni inkorporat kompatt ta 'prestazzjoni għolja. Il-kodiċi libmdbx huwa mqassam taħt il-liċenzja Apache 2.0. Is-sistemi operattivi u l-arkitetturi kollha attwali huma appoġġjati, kif ukoll ir-Russu Elbrus 2000. libmdbx joffri API żviluppata għal C++, kif ukoll rabtiet appoġġjati minn dilettanti għal-lingwi Rust, Haskell, Python, NodeJS, Ruby, Go, Nim , Deno, Scala.

Storikament, libmdbx huwa xogħol mill-ġdid fil-fond tal-LMDB DBMS u huwa superjuri għall-antenat tiegħu fl-affidabbiltà, is-sett ta 'karatteristiċi u l-prestazzjoni. Meta mqabbel ma 'LMDB, libmdbx jagħmel ħafna enfasi fuq il-kwalità tal-kodiċi, l-istabbiltà tal-API, l-ittestjar u l-kontrolli awtomatizzati. Hija fornuta utilità għall-iċċekkjar tal-integrità tal-istruttura tad-database b'xi kapaċitajiet ta' rkupru. Fir-rigward tat-teknoloġija, libmdbx joffri ACID, serialization ta 'bidla qawwija, u qari li ma jimblukkawx bi skalar lineari fil-qlub tas-CPU. Il-kompattifikazzjoni awtomatika, il-ġestjoni awtomatika tad-daqs tad-database, u l-istima tal-mistoqsija tal-firxa huma appoġġjati.

Bidliet ewlenin:

  • Tħaffef l-aġġornament tal-GC meta tirritorna/tpoġġi listi tal-paġni f'xenarji kumplessi. Il-modalità ta' feedback korrettiva sperimentali li kienet diżabilitata qabel ġiet imtejba u attivata. Din il-konverġenza tejbet b'mod fundamentali (in-numru ta' tentattivi mill-ġdid tnaqqas), u eliminat ukoll difett li wassal għal "looping" meta kkommettew tranżazzjonijiet (bir-ritorn tal-iżball MDBX_PROBLEM) f'kundizzjonijiet speċifiċi rari.
  • CMake build scripts jinkludu l-istandard C23.
  • Miżjud T-macros għal funzjonijiet paired char/wchar_t.
  • Appoġġ miżjud għal tranżazzjonijiet ta' kitba nested għall-API C++.
  • It-tranżizzjoni għat-tieni edizzjoni tal-ispeċifikazzjoni tal-verżjoni semantika (“Semantic Versioning 2”) tlestiet u l-esportazzjoni tal-informazzjoni tal-verżjoni għal VERSION.json ġiet żgurata.
  • Għar-riproduċibbiltà tal-bini, miżjud appoġġ għall-varjabbli ambjentali SOURCE_DATE_EPOCH. L-appoġġ MDBX_BUILD_TIMESTAMP jinżamm u din il-varjabbli tieħu preċedenza.
  • Żid il-ħila li tispeċifika informazzjoni addizzjonali dwar il-bini tal-libmdbx permezz tal-għażla MDBX_BUILD_METADATA. Issa l-informazzjoni speċifikata hija sempliċement inkluża ġewwa l-librerija bħala l-valur mdbx_build.metadata, u fil-futur se tintuża wkoll meta jinħolqu pakketti, eċċ.
  • Miżjud illoggjar ta 'żbalji rritornati mill-API. Issa, biex tagħmel dan, huwa biżżejjed li tissettja l-livell tal-qtugħ MDBX_LOG_DEBUG (għall-iżbalji tal-illoggjar nieqes MDBX_NOTFOUND) jew MDBX_LOG_TRACE (għall-illoggjar tal-iżbalji kollha, kif ukoll MDBX_RESULT_TRUE).
  • Bidla fl-Imġieba:
    • Miżjud il-metodu mdbx::cursor::get_multiple_samelength() u mdbx::txn::put_multiple_samelength().
    • Għall-konsistenza C++ API, l-operazzjoni MDBX_GET_MULTIPLE issa tirritorna wkoll il-valur taċ-ċavetta nnifisha.
    • Għall-kostanti tad-daqs mdbx::env::geometry, it-tip bażi nbidel minn size_t mhux iffirmat għal intptr_t iffirmat.
    • L-għażla li tuża ntdll minflok CRT issa ssir biss meta l-API C++ tiġi diżattivata b'mod espliċitu.
    • Jiżgura li l-memorja tat-tranżazzjonijiet tal-qari abortiti/abortiti mgħoddija lil mdbx_txn_commit() tiġi meħlusa. Il-konvenzjoni tal-API tirrikjedi li tranżazzjonijiet bħal dawn jiġu rilaxxati bl-użu ta' mdbx_txn_abort(), li jikkawża li mdbx_txn_commit() jirritorna żball f'każijiet bħal dawn mingħajr ma twaqqaf it-tranżazzjonijiet infushom. Dan irriżulta fi tnixxijiet tal-memorja minħabba bugs fl-applikazzjonijiet, li wassal għal bidliet fl-imġieba.
    • Bl-użu tal-makro __deprecated_enum jekk definit.
    • Meta tibni b'CMake, l-istandard tal-lingwa C issa jintgħażel ibbażat fuq CMAKE_C_STANDARD.

Sors: opennet.ru

Żid kumment