Paskelbtas libmdbx 0.13.2 (MDBX) leidimas, kuriame įdiegta didelio našumo kompaktiška įterptoji raktų verčių duomenų bazė. Libmdbx kodas platinamas pagal Apache 2.0 licenciją. Palaikomos visos dabartinės operacinės sistemos ir architektūros, taip pat rusiška Elbrus 2000. libmdbx siūlo sukurtą API, skirtą C++, taip pat entuziastų palaikomus susiejimus su kalbomis „Rust“, „Haskell“, „Python“, „NodeJS“, „Ruby“, „Go“, „Nim“ , Deno, Scala.
Istoriškai libmdbx yra gilus LMDB DBVS perdirbimas ir pranašesnis už savo pirmtaką savo patikimumu, funkcijų rinkiniu ir našumu. Palyginti su LMDB, libmdbx daug dėmesio skiria kodo kokybei, API stabilumui, testavimui ir automatiniams patikrinimams. Pateikiama duomenų bazės struktūros vientisumo tikrinimo programa su tam tikromis atkūrimo galimybėmis. Technologiškai libmdbx siūlo ACID, stiprią pakeitimų serializaciją ir neblokuojančius skaitymus su tiesiniu mastelio keitimu procesoriaus branduoliuose. Palaikomas automatinis suglaudinimas, automatinis duomenų bazės dydžio valdymas ir diapazono užklausos įvertinimas.
Pagrindiniai pakeitimai:
- Paspartinkite GC atnaujinimą, kai grįžtate / pateikiami puslapių sąrašai sudėtinguose scenarijuose. Anksčiau išjungtas eksperimentinio korekcinio grįžtamojo ryšio režimas buvo patobulintas ir suaktyvintas. Tai iš esmės pagerino konvergenciją (sumažino pakartojimų skaičių), taip pat pašalino defektą, dėl kurio atsiranda „kilpos“ atliekant operacijas (grąžinus MDBX_PROBLEM klaidą) retomis konkrečiomis sąlygomis.
- CMake kūrimo scenarijai apima C23 standartą.
- Pridėtos T makrokomandos suporuotoms char/wchar_t funkcijoms.
- Pridėtas įdėtųjų rašymo operacijų palaikymas C++ API.
- Perėjimas prie antrojo semantinio versijų kūrimo specifikacijos („Semantic Versioning 2“) leidimo buvo baigtas ir užtikrintas versijos informacijos eksportavimas į VERSION.json.
- Kad būtų galima sukurti atkuriamumą, pridėtas aplinkos kintamojo SOURCE_DATE_EPOCH palaikymas. MDBX_BUILD_TIMESTAMP palaikymas išlaikomas ir šis kintamasis turi pirmenybę.
- Pridėta galimybė nurodyti papildomą informaciją apie libmdbx kūrimą naudojant MDBX_BUILD_METADATA parinktį. Dabar nurodyta informacija tiesiog įtraukiama į biblioteką kaip mdbx_build.metadata reikšmė, o ateityje ji taip pat bus naudojama kuriant paketus ir pan.
- Pridėtas klaidų, sugrąžintų iš API, registravimas. Dabar, norint tai padaryti, pakanka nustatyti registravimo lygį MDBX_LOG_DEBUG (už registravimo klaidas atėmus MDBX_NOTFOUND) arba MDBX_LOG_TRACE (visoms klaidoms registruoti, taip pat MDBX_RESULT_TRUE).
- Elgesio pasikeitimas:
- Pridėtas mdbx::cursor::get_multiple_samelength() metodas ir pervadintas mdbx::txn::put_multiple_samelength().
- Kad būtų užtikrintas C++ API nuoseklumas, MDBX_GET_MULTIPLE operacija dabar taip pat grąžina paties rakto reikšmę.
- Mdbx::env::geometry dydžio konstantoms pagrindinis tipas buvo pakeistas iš unsigned size_t į signed intptr_t.
- Pasirinkimas naudoti ntdll vietoj CRT dabar pasirenkamas tik aiškiai išjungus C++ API.
- Užtikrina, kad būtų atlaisvinta nutrauktų / nutrauktų skaitymo operacijų, perduotų į mdbx_txn_commit(), atmintis. API konvencija reikalauja, kad tokios operacijos būtų išleistos naudojant mdbx_txn_abort(), todėl tokiais atvejais mdbx_txn_commit() grąžina klaidą neatitraukiant pačių operacijų. Dėl to atsirado atminties nutekėjimo dėl programų klaidų, dėl kurių pasikeitė elgesys.
- Naudojant makrokomandą __deprecated_enum, jei ji nustatyta.
- Kuriant naudojant CMake, C kalbos standartas dabar pasirenkamas remiantis CMAKE_C_STANDARD.
Šaltinis: opennet.ru
