Vydání vestavěné databázové knihovny libmdbx 0.13.6

Byla publikována verze knihovny libmdbx 0.13.6 (MDBX) s implementací vysoce výkonné kompaktní embedded databáze typu klíč-hodnota. Kód libmdbx je distribuován pod licencí Apache 2.0. Podporovány jsou všechny aktuální operační systémy a architektury, včetně ruského Elbrus 2000. Pro libmdbx je k dispozici rozvinuté API pro C++, stejně jako oblíbené vazby pro jazyky Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala. Mezi projekty využívající libmdbx můžeme zmínit Isar, Erigon a Reth, stejně jako vývoj firem StarkWare a Positive Technologies.

Historicky je libmdbx hlubokou přepracováním databázového systému LMDB a překonává svého předchůdce v spolehlivosti, sadě funkcí a výkonu. Ve srovnání s LMDB věnuje libmdbx velkou pozornost kvalitě kódu, stabilnímu fungování API, testování a automatickým kontrolám. Dodává se nástroj pro kontrolu integrity struktury databáze s některými možnostmi obnovení. Technologicky libmdbx nabízí ACID, přísnou serializaci změn a neblokující čtení s lineárním škálováním podle CPU jader. Podporováno je automatické zhuštění, automatické řízení velikosti databáze, odhad objemu dotazů podle rozsahu (range query estimation).

Hlavní změny:

  • Změna chování: Při nemožnosti odpojit kurzor od jeho aktuální transakce funkce mdbx_cursor_bind() nyní vrací MDBX_EINVAL místo MDBX_BAD_TXN.
  • Aby se předešlo potenciálním problémům, bylo deaktivováno používání copy_file_range() na jádrech Linux 5.3 – 5.18.
  • Vyvolání std::invalid_argument je nyní provedeno explicitním hlášením MDBX_EINVAL.
  • Byl odstraněn regres při používání kurzorů pro DBI=0 (alias GC/FreeDB) ve čtecích transakcích.
  • Byl odstraněn regres ve formě chyby EAGAIN při kopírování databáze na NFS a CIFS/SMB.
  • Při reprofilaci API v funkci kopírování byl přidán zámek souboru pomocí jak fcntl(), tak flock(). Nicméně, v závislosti na verzi lokálního jádra, verzi vzdáleného NFS a možnostech montování, to mohlo vést k návratu POSIX chyby EAGAIN (11 na většině platforem, včetně Linuxu). serveru Byla odstraněna chyba merge/rebase v rámci mdbx_txn_release_all_cursors_ex(), která mohla vést k následným neočekávaným chybám MDBX_EBADSIGN a únikům paměti.
  • Byla opravena assert kontrola v cestě ukončení vnořených transakcí.
  • Byla odstraněna možnost návratu neočekávané chyby MDBX_BUSY z mdbx_txn_lock(dont_wait=false).
  • Pro kompatibilitu s GCC 15.x v režimu C23 byl změněn pořádek uvádění atributů funkcí.
  • Byla publikována verze knihovny libmdbx 0.13.6 (MDBX) s implementací vysoce výkonné kompaktní embedded databáze typu klíč-hodnota. Kód libmdbx je distribuován pod licencí Apache 2.0.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster