UtgÄvan av den inbyggda databashanteraren libmdbx 0.13.7

UtgÄvan av biblioteket libmdbx 0.13.7 (MDBX) har publicerats med implementeringen av en högpresterande kompakt inbyggd 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 utvecklat API för C++, samt stödda bindningar för sprÄk som Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno och Scala. Bland projekten som anvÀnder libmdbx kan nÀmnas Isar, Erigon och Reth samt utvecklingarna av StarkWare och Positive Technologies.

Historiskt sett Àr libmdbx en djupgÄende omarbetning av databashanteraren LMDB och övertrÀffar sin föregÄngare i pÄlitlighet, funktionalitet och prestanda. JÀmfört med LMDB lÀgger libmdbx stort fokus pÄ kodkvalitet, stabilitet i API:et, testning och automatiska kontroller. En databasintegritetskontrollverktyg levereras med vissa ÄterstÀllningsfunktioner. Teknologiskt erbjuder libmdbx ACID, strikt serialisering av förÀndringar och icke-blockerande lÀsning med linjÀr skalning över CPU-kÀrnor. Automatisk komprimering, automatisk hantering av databasens storlek och uppskattning av urvalets volym över intervall (range query estimation) stöds.

Huvudsakliga förÀndringar:

  • En kritisk bugg i funktionen mdbx_env_resurrect_after_fork() vid anvĂ€ndning av SysV-semaforer har Ă„tgĂ€rdats. Felet uppstod endast efter skapandet av en barnprocess via fork() under en pĂ„gĂ„ende skrivtransaktion, vilket ledde till felaktig funktionalitet i semaforerna och dĂ€rmed olika typer av fel, upp till och med databaskorruption. Problemet har funnits sedan mdbx_env_resurrect_after_fork() introducerades och pĂ„verkade macOS samt POSIX-plattformar vid kompilering med alternativet MDBX_LOCKING=5.
  • Ett problem i API:t för databasöverföring, som uppstod pĂ„ andra POSIX-system Ă€n Linux (frĂ€mst macOS), samt i vissa fall nĂ€r den mĂ„lfilen lĂ„g pĂ„ en icke-lokal filsystem, har Ă„tgĂ€rdats. Problemet ledde till ett felmeddelande EWOULDBLOCK/EAGAIN, vilket berodde pĂ„ en brist/motsĂ€ttning mellan lĂ„sningar fcntl(F_SETLK) och flock() i operativsystemets kĂ€rna. Felhanteringen för filblockering i API:t för databasöverföring har omarbetats för POSIX-system.
  • En bugg som ledde till ett ovĂ€ntat Ă„tervĂ€ndande av MDBX_BAD_DBI vid samtidigt startande av flera transaktioner inom en och samma process efter att databasen öppnats har Ă„tgĂ€rdats.
  • En bugg som ledde till ett ovĂ€ntat Ă„tervĂ€ndande av MDBX_DBS_FULL vid Ă„teröppnande av redan öppnade tabeller och nĂ€r grĂ€nsen för öppna DBI-deskriptorer hade nĂ„tts har Ă„tgĂ€rdats.
  • Byggfel för Android-plattformar vid tydlig definition av _FILE_OFFSET_BITS har Ă„tgĂ€rdats.
  • Problemet med anvĂ€ndning av ENOMEM istĂ€llet för MDBX_ENOMEM har Ă„tgĂ€rdats. Detta kunde förstöra byggprocessen pĂ„ icke-POSIX/Windows-plattformar, beroende pĂ„ konfiguration och/eller SDK-version.
  • Flera felaktiga assert-kontroller har korrigerats eller tagits bort, vilket ledde till kraschar i debug-uppbyggnader under specifika förhĂ„llanden. Detta gĂ€llde frĂ€mst koden i funktionerna txn_end(), txn_lock() och txn_unlock() bĂ„de pĂ„ Windows och POSIX.
  • Onödiga MSVC-varningar har Ă„tgĂ€rdats. Varningarna C5286 och C5287 har inaktiverats.
  • Logiken för att avbryta anvĂ€ndningen av OFD-lĂ„s pĂ„ POSIX-plattformar har förbĂ€ttrats. Nu beaktas utöver EINVAL Ă€ven ytterligare felkoder (ENOSYS, ENOIMPL, ENOTSUP, ENOSUPP, EOPNOTSUPP), vilket gör att det sammanstĂ€llda biblioteket kan fungera i vissa fall dĂ€r nuvarande kĂ€rna/kontainer/emulator inte stödjer de nödvĂ€ndiga systemanropen.
  • Testramverket har fĂ„tt stöd för alternativet "—numa " för att binda den stokastiska testen till en NUMA-nod. I battery/tmux-skriptet har en tydlig fördelning över NUMA-noder lagts till, vilket vĂ€sentligt har ökat effektiviteten vid testning pĂ„ NUMA-maskiner.
  • I det stokastiska skriptet har en slumpmĂ€ssig startsekvens för enskilda tester genomförts.

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