Release of the embedded DBMS libmdbx 0.13.6

Udgaven version 0.13.6 af libmdbx (MDBX) med implementering af en højtydende, kompakt indlejret nøgle-værdi database. Koden til libmdbx distribueres under Apache 2.0 licensen. Den understøtter alle aktuelle operativsystemer og arkitekturer samt den russiske Elbrus 2000. Der tilbydes et omfattende API til C++, samt understøttelse af bindings til Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno og Scala, som vedligeholdes af entusiaster. Blandt projekterne, der bruger libmdbx, kan nævnes Isar, Erigon og Reth samt udviklinger fra StarkWare og Positive Technologies.

Historisk set er libmdbx en dybdegående omarbejdning af DBMS LMDB og overgår sin forgænger med hensyn til pålidelighed, funktionaliteter og ydeevne. Sammenlignet med LMDB lægger libmdbx stor vægt på kodekvalitet, stabiliteten af API'et, testning og automatiserede kontroller. Der medfølger et værktøj til at kontrollere databasen's integritet med nogle genoprettelsesmuligheder. Teknologisk set tilbyder libmdbx ACID, streng serialisering af ændringer og ikke-blokerende læsning med lineær skalering på CPU-kerner. Der er støtte til automatisk komprimering, automatisk administration af database størrelse og estimat af forespørgselsvolumen over intervaller (range query estimation).

Vigtige ændringer:

  • Adfærdsændring: Når det ikke er muligt at afbinde kursoren fra sin nuværende transaktion, returnerer funktionen mdbx_cursor_bind() nu MDBX_EINVAL i stedet for MDBX_BAD_TXN.
  • For at undgå potentielle problemer er brugen af copy_file_range() deaktiveret på Linux-kernene 5.3 – 5.18.
  • Std::invalid_argument exception kastes nu med en eksplicit meddelelse om MDBX_EINVAL.
  • Regression afhjulpet ved brug af kursorer til DBI=0 (aka GC/FreeDB) i læse-transaktioner.
  • Regression der resulterede i EAGAIN-fejl ved kopiering af database til NFS og CIFS/SMB er løst.
  • Under opdateringer/udvikling af API'et i copy-funktionen er filens låsning inkluderet ved hjælp af både fcntl() og flock(). Men afhængigt af versionen af den lokale kerne, versionen af den fjerne NFS og monteringsindstillingerne kunne dette medføre tilbagevenden af POSIX-fejlen EAGAIN (11 på de fleste platforme, herunder Linux). server Fejl i merge/rebase indeni mdbx_txn_release_all_cursors_ex() er afhjulpet, hvilket kunne have ført til følgende uventede fejl MDBX_EBADSIGN og hukommelseslækager.
  • Assert-kontrol i afslutningen af indlejrede transaktioner er rettet.
  • Muligheden for at få en uventet fejl MDBX_BUSY fra mdbx_txn_lock(dont_wait=false) er blevet elimineret.
  • Der er rettet til en assert-kontrol i slutningen af indlejrede transaktioner.
  • For compatibility with GCC 15.x in C23 mode, the order of function attribute specification has been changed.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster