Lansarea SGBD-ului încorporat libmdbx 0.13.6

A fost publicată versiunea 0.13.6 a bibliotecii libmdbx (MDBX), care implementează o bază de date încorporată compactă și de înaltă performanță de tip cheie-valoare. Codul libmdbx este distribuit sub licența Apache 2.0. Se suportă toate sistemele de operare și arhitecturile actuale, inclusiv Elysium 2000 din Rusia. Libmdbx oferă o API dezvoltată pentru C++, precum și legături susținute de entuziaști pentru limbajele Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala. Printre proiectele care utilizează libmdbx se numără Isar, Erigon și Reth, precum și dezvoltările companiilor StarkWare și Positive Technologies.

Din punct de vedere istoric, libmdbx este o refacere profundă a sistemului de gestionare a bazelor de date LMDB și depășește predecesorul său în ceea ce privește fiabilitatea, funcționalitatea și performanța. Comparativ cu LMDB, libmdbx acordă o mare atenție calității codului, funcționării stabile a API-ului, testării și verificărilor automate. Este inclusă o utilitară de verificare a integrității structurii bazei de date, cu unele capacități de recuperare. Din punct de vedere tehnologic, libmdbx oferă ACID, serializare strictă a modificărilor și citire neblocat cu scalare liniară pe nuclee CPU. Suportă autoîngrijirea și gestionarea automată a dimensiunii bazei de date, estimarea volumului interogărilor pe intervale (range query estimation).

Modificări principale:

  • Schimbarea comportamentului: În cazul în care nu se poate detașa cursorul de tranzacția sa curentă, funcția mdbx_cursor_bind() returnează acum MDBX_EINVAL în loc de MDBX_BAD_TXN.
  • Pentru a evita problemele potențiale, utilizarea copy_file_range() a fost dezactivată pe nucleele Linux 5.3 - 5.18.
  • Excepția std::invalid_argument este acum generată cu un mesaj explicit MDBX_EINVAL.
  • A fost eliminat regresul la utilizarea cursorilor pentru DBI=0 (cunoscut și sub numele de GC/FreeDB) în tranzacțiile de citire.
  • A fost eliminat regresul sub forma erorii EAGAIN la copierea BD-ului pe NFS și CIFS/SMB.
  • În îmbunătățirile/dezvoltarea API-ului, funcția de copiere a fost extinsă cu capturarea blocării fișierelor prin fcntl() și flock(). Totuși, în funcție de versiunea nucleului local, versiunea NFS de la distanță și opțiunile de montare, acest lucru ar putea duce la returnarea erorii POSIX EAGAIN (11 pe majoritatea platformelor, inclusiv Linux). server A fost rezolvată o eroare de tip merge/rebase în cadrul mdbx_txn_release_all_cursors_ex(), ceea ce putea conduce la erori neașteptate ulterioare MDBX_EBADSIGN și scurgeri de memorie.
  • A fost corectată verificarea assert în procesul de încheiere a tranzacțiilor imbricate.
  • A fost eliminată posibilitatea returnării unei erori neașteptate MDBX_BUSY din mdbx_txn_lock(dont_wait=false).
  • Pentru compatibilitatea cu GCC 15.x în modul C23, ordinea specificării atributelor funcțiilor a fost modificată.
  • A fost publicată versiunea 0.13.6 a bibliotecii libmdbx (MDBX), care implementează o bază de date încorporată compactă și de înaltă performanță de tip cheie-valoare. Codul libmdbx este distribuit sub licența Apache 2.0.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster