Kuburitswa kweiyo yakamisikidzwa DBMS libmdbx 0.13.2

Kuburitswa kwe libmdbx 0.13.2 (MDBX) kwakatsikiswa, kuita dhatabhesi repamusoro-soro compact embedded key-value database. Iyo libmdbx kodhi inogoverwa pasi peiyo Apache 2.0 rezinesi. Yese yazvino mashandiro masisitimu uye zvivakwa zvinotsigirwa, pamwe neRussia Elbrus 2000. libmdbx inopa yakagadziridzwa API yeC++, pamwe neanofarira-anotsigirwa anosunga kumitauro Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. , Deno, Scala.

Nhoroondo, libmdbx ndeyekudzikazve kugadzirisa kweLMDB DBMS uye yakakwirira kune tateguru wayo mukuvimbika, seti yemaitiro uye kuita. Kuenzaniswa neLMDB, libmdbx inoisa zvakanyanya kukoshesa pamhando yekodhi, kugadzikana kweAPI, kuyedzwa, uye otomatiki cheki. Chishandiso chekutarisa kutendeseka kweiyo dhatabhesi chimiro nehumwe hunyanzvi hwekudzoreredza chinopihwa. Tekinoroji-huchenjeri, libmdbx inopa ACID, yakasimba shanduko serialization, uye isiri-kuvhara kuverenga ine mutsara kuyera muCPU cores. Auto-compactification, otomatiki dhatabhesi saizi manejimendi, uye renji yemubvunzo fungidziro inotsigirwa.

Shanduko huru:

  • Kurumidza kusimudzira GC kana uchidzoka / uchiisa rondedzero yemapeji mumamiriro akaoma. Iyo yakamboremara yekuedza kugadzirisa mhinduro modhi yakagadziridzwa uye yakavhurwa. Izvi zvakavandudza convergence (yakadzikisa huwandu hwekuedzazve), uye zvakare yakabvisa chikanganiso chinotungamira ku "looping" paunenge uchiita kutengeserana (nekudzoserwa kweMDBX_PROBLEM kukanganisa) mumamiriro ezvinhu asingawanzo.
  • CMake kuvaka zvinyorwa zvinosanganisira C23 standard.
  • Yakawedzera T-macros yeakapetwa char/wchar_t mabasa.
  • Yakawedzera tsigiro kune nested kunyora kutengeserana kuC ++ API.
  • Shanduko kuenda kune yechipiri edition yeiyo semantic shanduro yetsanangudzo ("Semantic Versioning 2") yakapedzwa uye kutumirwa kweruzivo rwevhezheni kune VERSION.json kwave nechokwadi.
  • Pakuvakazve kuberekana, yakawedzera rutsigiro rwe SOURCE_DATE_EPOCH shanduko yenzvimbo. MDBX_BUILD_TIMESTAMP rutsigiro rwakachengetwa uye shanduko iyi inotungamira.
  • Yakawedzera kugona kutsanangura rumwe ruzivo nezve libmdbx kuvaka kuburikidza neMDBX_BUILD_METADATA sarudzo. Ikozvino ruzivo rwakatsanangurwa rwunongoverengerwa mukati meraibhurari seiyo mdbx_build.metadata kukosha, uye mune ramangwana ichashandiswa zvakare pakugadzira mapakeji, nezvimwe.
  • Yakawedzera matanda ekukanganisa akadzoka kubva kuAPI. Zvino, kuita izvi, zvakakwana kuseta mwero wekutema matanda MDBX_LOG_DEBUG (yezvikanganiso zvekutema minus MDBX_NOTFOUND) kana MDBX_LOG_TRACE (yekutema zvikanganiso zvese, pamwe neMDBX_RESULT_TRUE).
  • Kuchinja maitiro:
    • Yakawedzerwa mdbx::cursor::get_multiple_samelength() nzira uye yakanzi mdbx::txn::put_multiple_samelength().
    • Kune C++ API kusawirirana, iyo MDBX_GET_MULTIPLE mashandiro iko zvino inodzosa kukosha kwekiyi pachayo.
    • Kune mdbx ::env:: geometry saizi isingachinjiki, mhando yepasi yakashandurwa kubva kune isina kusaina saizi_t kuenda kusainwa intptr_t.
    • Sarudzo yekushandisa ntdll pachinzvimbo cheCRT ikozvino yaitwa chete kana ichidzima zvakajeka C ++ API.
    • Inovimbisa kuti ndangariro dzekurambwa/kubvisiswa kuverenga kutengeserana kwakapfuudzwa ku mdbx_txn_commit() kunosunungurwa. Kokorodzano yeAPI inoda kuti kutengeserana kwakadaro kuburitswe uchishandisa mdbx_txn_abort(), izvo zvinoita kuti mdbx_txn_commit() idzosere kukanganisa mumamiriro ezvinhu akadaro pasina kubvisa kutengeserana pachavo. Izvi zvakakonzera kudonha kwendangariro nekuda kwebugs mumaapplication, zvichikurudzira shanduko yemaitiro.
    • Kushandisa iyo __deprecated_enum macro kana yakatsanangurwa.
    • Pakuvaka neCMake, chiyero chemutauro weC chasarudzwa zvichibva paCMAKE_C_STANDARD.

Source: opennet.ru

Voeg