Die Bibliothek libmdbx 0.13.10 (MDBX) wurde veröffentlicht, die eine leistungsstarke kompakte eingebaute Schlüssel-Wert-Datenbank implementiert. Der Code von libmdbx steht unter der Apache 2.0-Lizenz. Alle aktuellen Betriebssysteme und Architekturen werden unterstützt, einschließlich des russischen Elbrus 2000. Für libmdbx wird eine umfassende API für C++ angeboten, ebenso wie von Enthusiasten unterstützte Bindungen für die Sprachen 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 gesehen ist libmdbx eine tiefgreifende Überarbeitung der Datenbank LMDB und übertrifft ihren Vorgänger hinsichtlich Zuverlässigkeit, Funktionsumfang und Leistung. Im Vergleich zu LMDB wird bei libmdbx großer Wert auf die Codequalität, die stabile API-Arbeit, das Testing und automatisierte Überprüfungen gelegt. Es wird ein Tool zur Überprüfung der Integrität der Datenbankstruktur mit einigen Wiederherstellungsfunktionen bereitgestellt. Technologisch bietet libmdbx ACID, strikte Serialisierung von Änderungen und nicht-blockierendes Lesen mit linearer Skalierung über CPU-Kerne hinweg. Auto-Compaction, automatische Verwaltung der Datenbankgröße und die Schätzung von Abfragevolumina über Bereiche (Range Query Estimation) werden unterstützt.
Im Dezember 2025 wurde das Hauptrepository des Projekts von GitFlic auf SourceCraft verschoben. Als Grund wurden die Beschwerden nicht-russischsprachiger Nutzer und Fehler im Markdown-Editor angegeben, die seit über drei Jahren nicht behoben wurden. Zudem wurde über die Schließung des Mirrors des Projekts auf Github berichtet, aber später wurde das Repository mit der Erklärung wiederhergestellt, dass dies auf Wunsch von Entwicklern aus China und Brasilien sowie der die libmdbx-Plattform verwendenden Firma Tempo geschehen ist.
Hauptänderungen seit der letzten Nachricht vom 1. August:
- Die Unterstützung für alte Linux-Kernel, beginnend mit Version 3.16, wurde wiederhergestellt.
- Die Unterstützung des mobilen Betriebssystems Harmony wurde bereitgestellt.
- Der Fehler „MDBX_WANNA_RECOVERY“ beim Öffnen der Datenbank im Nur-Lese-Modus wird jetzt zurückgegeben, wenn die Größe der Datenbank nicht ein Vielfaches der Größe der Systemseite ist, jedoch wird die Nichterfüllung der Größe des Speicherseitenblocks ignoriert.
- Die Möglichkeit, unerwartetes „SIGBUS“ aufgrund der verzögerten/lazy Zuweisung von Speicher durch den Kernel beim Füllen des Dateisystems nach der Vergrößerung der Datenbankdatei zu erhalten, wurde beseitigt.
- Die Assert-Prüfung im Scanpfad der Bitkarte von DBI-Deskriptoren, die zu seltenen Abstürzen von 32-Bit-Debug-Builds führte, wurde korrigiert.
- Für Android wurde ein Verfahren implementiert, das die Wahrscheinlichkeit eines Systemfehlers „EAGAIN“ verringert, der aufgrund von Ressourcenmangel und Übergangsprozessen beim Schließen und schnellen Wiederöffnen der Datenbank auftritt.
- Für Linux wurde die Fehlervermeidung in der Implementierung von fast_commit im Dateisystem Ext4 hinzugefügt.
- Ein Mangel in der automatischen Anpassung der Parameter bei der Einstellung der Geometrie mit einer vorgegebenen minimalen Seitengröße wurde behoben, aufgrund dessen auf Maschinen mit viel RAM die Seitengröße wachsen konnte.
- Die Implementierung von Puffern wurde überarbeitet und es wurden weitere Verbesserungen in der C++ API vorgenommen.
Zusätzlich sollte die Ankündigung des Berichts „libmdbx: Roadmap, Erfolge, Ziele und Hindernisse“ bei der Veranstaltung Ethereum Day, die am 23. Dezember in Moskau stattfinden wird, erwähnt werden.
Quelle: opennet.ru
