Izdaja vgrajenega DBMS libmdbx 0.13.2

Objavljena je izdaja knjižnice libmdbx 0.13.2 (MDBX) z implementacijo visoko zmogljive kompaktne vgrajene podatkovne baze razreda ključ-vrednost. Koda libmdbx se distribuira pod licenco Apache 2.0. Podprti so vsi aktualni operacijski sistemi in arhitekture, vključno z ruskim Elbrus 2000. Za libmdbx je na voljo razvito API za C++, skupaj s podporo navdušencev za jezike Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno in Scala.

Istorijski, libmdbx predstavlja duboku preradu DBMS LMDB i nadmašuje svog prethodnika u pouzdanosti, opsegu mogućnosti i performansama. U poređenju sa LMDB, libmdbx posvećuje veliku pažnju kvalitetu koda, stabilnom radu API-ja, testiranju i automatskim proverama. Isporučuje se alat za proveru integriteta strukture baze podataka sa nekim mogućnostima obnavljanja. Tehnološki, libmdbx nudi ACID, strogu serijalizaciju promena i neblokirajuće čitanje s linearnim skaliranjem po CPU jezgrama. Podržava automatsku kompaktifikaciju, automatsko upravljanje veličinom baze podataka, procenu obima uzoraka po opsegu (range query estimation).

Glavne spremembe:

  • Pospešeno je posodobitev GC pri vračanju/premikanju seznamov strani v zahtevnih scenarijih. Izboljšan in aktiviran je bil prej onemogočen eksperimentalni način korektivne povratne informacije. To je bistveno izboljšalo konvergenco (zmanjšalo število ponovitev) in odpravilo napako, ki je privedla do "zankanja" pri zaključevanju transakcij (s povratno napako MDBX_PROBLEM) v redkih specifičnih pogojih.
  • V gradbenih skriptah CMake je vključen standard C23.
  • Dodani so T-makroi za parne funkcije char/wchar_t.
  • Podpora za gnezdene pisane transakcije je dodana v C++ API.
  • Izveden je prehod na drugo izdajo specifikacije semantičnega verzioniranja ("Semantic Versioning 2") in zagotavljene so informacije o verziji v datoteki VERSION.json.
  • Za ponovljivost gradnje je dodana podpora za okoljsko spremenljivko SOURCE_DATE_EPOCH. Podpora MDBX_BUILD_TIMESTAMP je ohranjena in ta spremenljivka ima prednost.
  • Dodana je možnost natančne natančne informacije o gradnji libmdbx preko možnosti MDBX_BUILD_METADATA. Zdaj dodane informacije preprosto vključujemo znotraj knjižnice kot vrednost mdbx_build.metadata in se bodo kasneje uporabile pri oblikovanju paketov itd.
  • Dodano je beleženje napak, ki jih vrača API. Zdaj je dovolj, da nastavite raven beleženja MDBX_LOG_DEBUG (za beleženje napak, razen MDBX_NOTFOUND) ali MDBX_LOG_TRACE (za beleženje vseh napak, vključno z MDBX_RESULT_TRUE).
  • Sprememba obnašanja:
    • Dodana je metoda mdbx::cursor::get_multiple_samelength() in preimenovana mdbx::txn::put_multiple_samelength().
    • Za doslednost C++ API pri izvajanju operacije MDBX_GET_MULTIPLE zdaj vrne tudi vrednost samega ključa.
    • Za velikostne konstante mdbx::env::geometry je bil osnovni tip spremenjen iz brezznakovega size_t v znakovnega intptr_t.
    • Izbira med uporabo ntdll namesto CRT se zdaj izvede le ob izrecni onemogočitvi C++ API.
    • Zagotovljeno je sproščanje pomnilnika za prekinjene/branje transakcije, ki se prenašajo v mdbx_txn_commit(). Dogovor o API-ju zahteva, da se take transakcije sprostijo preko mdbx_txn_abort(), kar je povzročilo, da je funkcija mdbx_txn_commit() v takih primerih vrnila napako, ne da bi uničila same transakcije. To je privedlo do uhajanja pomnilnika zaradi napak v aplikacijah, kar je spodbudilo spremembo vedenja.
    • Uporaba makra __deprecated_enum, če je definiran.
    • Pri gradnji s CMake se izbira standarda jezika C zdaj izvede ob upoštevanju CMAKE_C_STANDARD.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster