Die Veröffentlichung der Bibliothek libmdbx 0.13.10 (MDBX) wurde bekannt gegeben, die eine hochleistungsfähige kompakte eingebettete Schlüssel-Wert-Datenbank implementiert. Der Code von libmdbx wird unter der Apache 2.0-Lizenz vertrieben. Es werden alle gängigen Betriebssysteme und Architekturen unterstützt, einschließlich des russischen Elbrus 2000. Für libmdbx ist eine umfangreiche API für C++ verfügbar, sowie von Enthusiasten unterstützte Bindungen an die Programmiersprachen Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno und Scala. Zu den Projekten, die libmdbx verwenden, gehören Isar, Erigon und Reth sowie Entwicklungen von StarkWare und Positive Technologies.
Historisch betrachtet ist libmdbx eine umfassende Überarbeitung der LMDB-Datenbank und übertrifft ihren Vorgänger hinsichtlich Zuverlässigkeit, Funktionsumfang und Leistung. Im Vergleich zur LMDB wird in libmdbx großer Wert auf die Codequalität, die Stabilität der API, die Tests und die automatischen Prüfungen gelegt. Es wird ein Tool zur Überprüfung der Integrität der Datenbankstruktur mit einigen Wiederherstellungsfunktionen bereitgestellt. Technologisch bietet libmdbx ACID, strikte Serialisierung der Änderungen und nicht blockierendes Lesen mit linearer Skalierung auf mehreren CPU-Kernen. Auto-Compaction, automatisches Management der Datenbankgröße und die Schätzung von Umfangsabfragen werden unterstützt.
Im Dezember 2025 wurde das Hauptrepository des Projekts von GitFlic zu SourceCraft migriert. Als Grund wurden Beschwerden von nicht-russischsprachigen Nutzern und Fehler im Markdown-Editor genannt, die über drei Jahre lang nicht behoben wurden. Es wurde auch berichtet, dass das Projektspiegel auf Github geschlossen wurde, aber später wurde das Repository mit der Begründung wiederhergestellt, dass dies auf Wunsch von Entwicklern aus China und Brasilien sowie von der libmdbx verwendenden Plattform Tempo erfolgte.
Hauptänderungen seit der letzten Meldung vom 1. August:
- Die Unterstützung für alte Linux-Kernel wurde ab Version 3.16 wiederhergestellt.
- Unterstützung für das mobile Betriebssystem Harmony gewährleistet.
- Der Fehler «MDBX_WANNA_RECOVERY» beim Öffnen der Datenbank im Nur-Lesen-Modus wird jetzt zurückgegeben, wenn die Größe der Datenbank nicht ein Vielfaches der Seiten-Größe des Systems ist, während die Nichtübereinstimmung mit der Blockgröße des virtuellen Speichers ignoriert wird.
- Möglichkeit eines unerwarteten «SIGBUS»-Fehlers aufgrund der verzögerten/freien Zuweisung von Speicher durch den OS-Kernel in einem vollen Dateisystem nach der Erweiterung der Datenbankdatei wurde beseitigt.
- Die Assert-Prüfung im Scan-Pfad der DBI-Deskriptoren wurde korrigiert, was zu seltenen Abstürzen von 32-Bit-Debug-Builds führte.
- Für Android wurde ein Verfahren implementiert, das die Wahrscheinlichkeit des Systemfehlers «EAGAIN» verringert, der aufgrund von Ressourcenmangel und Übergangsprozessen beim Schließen und schnellen Wiederöffnen der Datenbank entsteht.
- Für Linux wurde die Verhinderung des Auftretens von Fehlern in der Implementierung von fast_commit im Ext4-Dateisystem hinzugefügt.
- Ein Mangel bei der automatischen Anpassung der Parameter bei der Einstellung der Geometrie mit einer festgelegten minimalen Seiten-Größe wurde behoben, aufgrund dessen die Seiten-Größe auf Maschinen mit viel RAM erhöht werden konnte.
- Die Implementierung der Puffer wurde überarbeitet und es wurden weitere Verbesserungen im C++ API vorgenommen.
Zusätzlich ist die Ankündigung des Vortrags „libmdbx: Roadmap, Erfolge, Ziele und Hindernisse“ beim Ethereum Day erwähnenswert, der am 23. Dezember in Moskau stattfinden wird.
Quelle: opennet.ru
