Vydanie zabudovanej DBMS libmdbx 0.13.2

Vydaná verzia knižnice libmdbx 0.13.2 (MDBX) s implementáciou vysoko výkonných kompaktných embedded databáz triedy kľúč-hodnota. Kód libmdbx je šírený pod licenciou Apache 2.0. Podporované sú všetky aktuálne operačné systémy a architektúry, ako aj ruský Elbrus 2000. Pre libmdbx je k dispozícii rozšírené API pre C++, ako aj podporované bindy pre jazyky Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Historicky libmdbx predstavuje hĺbkovú rekonštrukciu DBMS LMDB a prevyšuje svojho predchodcu v spoľahlivosti, sade funkcií a výkonnosti. V porovnaní s LMDB sa v libmdbx kladie veľký dôraz na kvalitu kódu, stabilnú prácu API, testovanie a automatické kontroly. Dodávaný je nástroj na kontrolu integrity štruktúry databázy s niektorými možnosťami obnovy. Technologicky libmdbx ponúka ACID, prísnu serializáciu zmien a neblokujúce čítanie s lineárnym škálovaním podľa CPU jadier. Podporovaná je automatická kompakcia, automatické riadenie veľkosti databázy a odhad objemu výberov podľa rozsahov (range query estimation).

Hlavné zmeny:

  • Zrýchlená aktualizácia GC pri vrátení/umiesťovaní zoznamov stránok v zložitých scenároch. Prepracovaný a aktivovaný predtým vypnutý experimentálny režim korekčnej spätnej väzby. Týmto došlo k zásadnému zlepšeniu zbiehavosti (zníženie počtu opakovaných pokusov) a bol odstránený defect vedúci k „cyklovaniu“ pri fixovaní transakcií (so vrátením chyby MDBX_PROBLEM) v zriedkavých špecifických podmienkach.
  • V skriptoch na zostavenie CMake bol zahrnutý štandard C23.
  • Pridané T-makrá pre párové funkcie char/wchar_t.
  • Do C++ API bola pridaná podpora pre vnorené zápisové transakcie.
  • Prešlo sa na druhé vydanie špecifikácie sémantického verzionovania („Semantic Versioning 2“) a zabezpečil sa export informácií o verzii do VERSION.json.
  • Pre reprodukovateľnosť zostavení bola pridaná podpora pre premennú prostredia SOURCE_DATE_EPOCH. Podpora MDBX_BUILD_TIMESTAMP bola zachovaná a táto premenná má prednosť.
  • Pridaná možnosť uvádzať dodatočné informácie o zostavení libmdbx prostredníctvom voľby MDBX_BUILD_METADATA. Teraz zadané informácie sú jednoducho zahrnuté do knižnice ako hodnota mdbx_build.metadata a v budúcnosti budú tiež použité pri vytváraní balíkov a podobne.
  • Pridané logovanie chýb, ktoré sa vracajú z API. Teraz na to stačí nastaviť úroveň logovania MDBX_LOG_DEBUG (pre logovanie chýb okrem MDBX_NOTFOUND) alebo MDBX_LOG_TRACE (pre logovanie všetkých chýb, vrátane MDBX_RESULT_TRUE).
  • Zmenené správanie:
    • Pridaná metóda mdbx::cursor::get_multiple_samelength() a premenovaná mdbx::txn::put_multiple_samelength().
    • Pre jednotnosť C++ API pri vykonávaní operácie MDBX_GET_MULTIPLE sa teraz vracia aj hodnota samotného kľúča.
    • Pre rozmerové konštanty mdbx::env::geometry bol základný typ zmenený z bezznakového size_t na znakový intptr_t.
    • Voľba používania ntdll namiesto CRT sa teraz robí iba pri výslovnom vypnutí C++ API.
    • Uvoľnenie pamäte pre zrušené/prekryté čítajúce transakcie prenášané do mdbx_txn_commit() je zabezpečené. API zmluva vyžaduje, aby sa takéto transakcie uvoľnili pomocou mdbx_txn_abort(), čím funkcia mdbx_txn_commit() v týchto prípadoch vrátila chybu, pričom nezničila samotné transakcie. To viedlo k únikov pamäte kvôli chybám v aplikáciách, čo vyžadovalo zmenu správania.
    • Použitie makra __deprecated_enum, pokiaľ je definované.
    • Pri zostavovaní pomocou CMake sa výber štandardu jazyka C teraz vykonáva s ohľadom na CMAKE_C_STANDARD.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster