Utgivningen av den inbyggda databasen libmdbx 0.13.2

Uppdateringen av libmdbx-biblioteket 0.13.2 (MDBX) har offentliggjorts, vilket ger en högpresterande kompakt inbÀddad nyckel-vÀrde-databas. Koden för libmdbx distribueras under Apache 2.0-licensen. Stöd för alla aktuella operativsystem och arkitekturer, samt den ryska Elbrus 2000, erbjuds. För libmdbx finns ett utvecklat API för C++, samt stödjande bindningar till sprÄk som Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Historiskt sett Àr libmdbx en djup omarbetning av databashanteraren LMDB och övertrÀffar sin föregÄngare i pÄlitlighet, funktionalitet och prestanda. I jÀmförelse med LMDB lÀggs det stor vikt vid kodkvalitet, stabilitet i API:et, testning och automatiska kontroller. En verktyg för integritetskontroll av databasstrukturen levereras med vissa ÄterstÀllningsmöjligheter. Teknologiskt erbjuder libmdbx ACID, strikt serialisering av Àndringar och icke-blockerande lÀsning med linjÀr skalning över CPU-kÀrnor. Automatisk komprimering av data, automatisk hantering av databasens storlek samt skattning av urvalsstorlekar baserat pÄ intervall (range query estimation) stödjs.

Huvudsakliga förÀndringar:

  • Uppdateringstiden för GC har accelererats vid Ă„terlĂ€mnande/placerande av sidor i komplexa scenarier. Den tidigare inaktiverade experimentella lĂ€gen för korrigerande feedback har förbĂ€ttrats och aktiverats. Detta har vĂ€sentligt förbĂ€ttrat konvergensen (minskat antal Ă„terförsök) och eliminerat ett fel som ledde till 'loopning' vid transaktionsfixering (med felkod MDBX_PROBLEM) under sĂ€llsynta specifika omstĂ€ndigheter.
  • CMake-skriptet inkluderar standarden C23.
  • T-makron för par av funktioner char/wchar_t har lagts till.
  • Stöd för inre skrivande transaktioner har lagts till i C++ API.
  • ÖvergĂ„ngen till den andra upplagan av specifikationen för semantisk versionering ('Semantic Versioning 2') har genomförts och information om versionen exporteras nu till VERSION.json.
  • För att sĂ€kerstĂ€lla reproducibilitet av byggnader har stöd för miljövariabeln SOURCE_DATE_EPOCH lagts till. Stödet för MDBX_BUILD_TIMESTAMP har sparats och denna variabel har högre prioritet.
  • Möjligheten att ange ytterligare information om libmdbx-byggnader har lagts till via alternativet MDBX_BUILD_METADATA. Den angivna informationen inkluderas nu helt i biblioteket som vĂ€rde för mdbx_build.metadata, och kommer Ă€ven att anvĂ€ndas vid paketformering etc. i framtiden.
  • Felsökning av fel som returneras frĂ„n API har lagts till. Nu rĂ€cker det att ange loggnivĂ„n MDBX_LOG_DEBUG (för loggning av fel bortsett frĂ„n MDBX_NOTFOUND) eller MDBX_LOG_TRACE (för loggning av alla fel, inklusive MDBX_RESULT_TRUE).
  • Ändring av beteende:
    • Metoden mdbx::cursor::get_multiple_samelength() har lagts till och mdbx::txn::put_multiple_samelength() har bytt namn.
    • För enhetlighet i C++ API Ă„terkommer nu Ă€ven vĂ€rdet av sjĂ€lva nyckeln nĂ€r operationen MDBX_GET_MULTIPLE utförs.
    • För storlekskonstanterna mdbx::env::geometry har den basala typen Ă€ndrats frĂ„n osignerad size_t till signerad intptr_t.
    • Valet att anvĂ€nda ntdll istĂ€llet för CRT görs nu endast vid uttrycklig inaktivering av C++ API.
    • Minnesutrymme för avbrutna/lĂ€sta transaktioner som skickats till mdbx_txn_commit() har frigjorts. API-överenskommelsen krĂ€ver att sĂ„dana transaktioner frigörs via mdbx_txn_abort(), vilket gör att funktionen mdbx_txn_commit() returnerade fel i sĂ„dana fall utan att förstöra sjĂ€lva transaktionerna. Detta ledde till minneslĂ€ckor pĂ„ grund av applikationsfel, vilket motiverade en förĂ€ndring av beteendet.
    • AnvĂ€ndning av makrot __deprecated_enum, om det Ă€r definierat.
    • Vid byggnation med CMake vĂ€ljs nu sprĂ„kstandarden C med hĂ€nsyn till CMAKE_C_STANDARD.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster