Utgivning av inbÀddad databaslibmdbx 0.13.3.

Versionen av libmdbx-biblioteket 0.13.3 (MDBX) har publicerats, vilket implementerar en högpresterande kompakt inbÀddad nyckel-vÀrde-databas. Koden för libmdbx distribueras under Apache 2.0-licensen. Alla aktuella operativsystem och arkitekturer stöds, inklusive den ryska Elbrus 2000. För libmdbx erbjuds ett omfattande API för C++, samt stödda bindningar till sprÄk som Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno och 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:

  • Version 0.13.x har fĂ„tt status som stabil. Utvecklingen av version 0.14.x har pĂ„börjats.
  • Funktionen mdbx_cursor_count_ex() har lagts till i C API, vilket gör det möjligt att fĂ„ bĂ„de antalet multipla vĂ€rden som motsvarar den aktuella nyckeln och information om det inre trĂ€det som lagrar dessa vĂ€rden.
  • Metoden mdbx::txn::make_broken() har lagts till i C++ API, motsvarande mdbx_txn_break().
  • I verktygen mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat har loggning av fel, varningar och viktiga meddelanden frĂ„n libmdbx implementerats.
  • Ändring av beteende:
    • NĂ€r profilering av skrĂ€psamlare (kompilering med alternativet MDBX_ENABLE_PROFGC=ON) Ă€r aktiverat rĂ€knas nu CPU-tid för sammanslagning av sidlistor, dvs. för funktionen pnl_merge().
    • I testverktyget har datalĂ€get Ă€ndrats frĂ„n data.dups till data.multi.
    • Kontrollen av nyckellĂ€ngd i cursor_seek() har förbĂ€ttrats.
    • Om inte ett eget vĂ€rde anges av anvĂ€ndaren via mdbx_env_set_option(MDBX_opt_txn_dp_limit), justeras dirty-pages-limit vid starten av varje icke-nĂ€stlad skrivtransaktion, baserat pĂ„ mĂ€ngden tillgĂ€ngligt RAM-minne och storleken pĂ„ databasen.
    • I lĂ€get MDBX_NOSTICKYTHREADS tillĂ„ts commit/abort av nĂ€stlade transaktioner frĂ„n vilken trĂ„d som helst.
    • Vid försök att starta nĂ€stlade transaktioner i lĂ€get MDBX_WRITEMAP görs loggning och ett fel MDBX_INCOMPATIBLE returneras.
    • I C++ API anvĂ€nds som standard endast standardvĂ€rden i konstruktorer/initierare och metoder relaterade till databashantering.
    • Inuti mdbx_env_set_geometry() har heuristiker för att vĂ€lja de av anvĂ€ndaren begĂ€rda databashanteringsalternativen "som standard" förbĂ€ttrats.
  • Buggfixar:
    • En regression av oblockering av mutex vid försök att stĂ€nga dbi-deskriptoren igen, inklusive försök att uttryckligen stĂ€nga deskriptoren efter att den relaterade tabellen har raderats, har Ă„tgĂ€rdats.
    • En regression av den interna tillstĂ„ndet för nĂ€stlade/dupsort-cursorer efter att ha infogat data i MDBX_APPEND-lĂ€ge har Ă„tgĂ€rdats.
    • Stöd för att hĂ€mta boot_id vid arbete inom en LXC-container.
    • Fel av invalid hantering av försök att starta en inbĂ€ddad lĂ€sande transaktion har Ă„tgĂ€rdats. Nu returneras ett felmeddelande MDBX_EINVAL i sĂ„dana situationer, eftersom nĂ€stlade transaktioner endast stöds för lĂ€s- och skrivtransaktioner.
    • Regression av SIGSEGV som hĂ€nvisar till nulladress i lĂ€slĂ€ge utan att anvĂ€nda LCK-fil har Ă„tgĂ€rdats, till exempel nĂ€r databasen Ă€r placerad pĂ„ en lĂ€sbar enhet.

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