versiunea 0.9.1 a bibliotecii (MDBX) cu implementarea unei baze de date încorporate de tip cheie-valoare, compactă și de înaltă performanță. Codul libmdbx este distribuit sub licența .
Versiunea actuală reprezintă un compromis între intenția de a lansa o versiune stabilă pe termen lung 1.0 cu o suport complet pentru C++ și reticența de a întârzie lansările din cauza neîncheierii noii API C++. Această lansare este rezultatul a 9 luni de muncă dedicată stabilizării bibliotecii și îmbunătățirii utilizabilității acesteia, incluzând și o versiune preliminară .
Biblioteca libmdbx nu este doar un „fork”, ci un descendent complet refăcut — un SGBD încorporat, tranzacțional, de tip „cheie-valoare”, bazat pe fără , care permite proceselor multi-thread să funcționeze concurent și eficient cu o bază de date local partajată (nu de rețea), fără un proces de server dedicat. Libmdbx extinde în mod fundamental libmdbx oferă
, serializarea strictă a modificărilor și citirea non-blocantă cu scalare liniară pe nucleele CPU. Rezultatele testării performanței (trimiterea de cereri paralele de citire/căutare în 1-2-4-8 fire pe CPU i7-4600U cu 2 nuclee fizice în modul de 4 fire HyperThread): Cele mai importante diferențe ale MDBX, în comparație cu LMDB:
Se acordă o atenție considerabil mai mare calității codului, „rezistenței” API-ului, testării și verificărilor automate.
- Se oferă control considerabil mai mult în timpul funcționării, începând de la verificarea parametrilor și până la auditarea internă a structurilor bazei de date.
- Compactarea automată și gestionarea automată a dimensiunii Bazei de Date.
- Format unic de Baza de Date pentru build-uri de 32 și 64 de biți.
- Estimarea volumului interogărilor pe intervale (range query estimation).
- Suport pentru chei de două ori mai lungi și dimensiunea paginii bazei de date aleasă de utilizator.
- Utilitar pentru verificarea integrității structurii bazei de date cu anumite funcții de recuperare.
- Principalele noutăți și îmbunătățiri după
ultima știre Pentru suport operațional și răspunsuri la întrebări, a fost creat un forum deschis
- Для оперативной поддержки и ответов на вопросы создана открытая .
- Au fost corectate mai mult de zece erori și greșeli (vezi. ).
- Au fost corectate multe greșeli de tipar și ortografice, multiple îmbunătățiri cosmetice.
- Scenariile de testare au fost extinse.
- A fost implementat suport pentru iOS, Android, , , , și .
- A fost prezentată o versiune preliminară a API-ului C++ în .
- Documentația integrată a fost formatată în Doxygen și generarea automată .
- Am fost asigurată generarea automată a arhivelor cu coduri sursă amalgamate.
- A fost adăugat suport pentru pregătirea tranzacțiilor și cursorilor, contexte personalizate pentru tranzacții și cursori.
- Au fost implementate metode suplimentare de control al integrității referințelor în instantanee MVCC B+tree.
- A fost adăugat suport pentru verificarea instantanei MVCC a DB, disponibilă prin orice pagină meta cu opțiunea de comutare pentru recuperare.
- A fost implementat suport pentru redeschiderea DB dintr-un singur proces în scopuri de testare etc.
- A fost implementată procesarea automată a opțiunii MDBX_NOSUBDIR la deschiderea DB.
- Au fost adăugate funcții pentru generarea cheilor întregi din valori cu virgulă mobilă și numere „universale” JavaScript.
- În total, au fost făcute 430 de modificări afectând 93 de fișiere, au fost adăugate peste 25.000 de linii, au fost șterse peste 8.500 de linii.
Dezvoltarea ulterioară a libmdbx se va concentra pe formarea finală a API-ului C++, stabilizarea continuă a codului de bază, îmbunătățirea utilizabilității bibliotecii, precum și formarea pachetelor pentru distribuțiile populare de Linux. Printre caracteristicile propuse se numără suportul pentru chei în format .
Sursa: opennet.ro
