libmdbx 0.10.4 enthält verschiedene Verbesserungen und Fehlerbehebungen

Die Freisetzung von Version 0.10.4 Bibliotheken "Libmdbx" in denen insgesamt über 160 Änderungen an 57 Dateien vorgenommen, ~ 5000 Zeilen hinzugefügt und ~ 2500 entfernt. Für diejenigen, die mit libmdbx nicht vertraut sind, sollten Sie wissen, dass dies eine Reihe von Bibliotheken ist, die eine Implementierung einer kompakten, leistungsstarken eingebetteten Datenbank der Schlüssel-Wert-Klasse sind.

Historisch, libmdbx ist eine tiefgreifende Überarbeitung des LMDB DBMS und übertrifft seinen Vorgänger in Zuverlässigkeit, Funktionsumfang und Leistung. Im Vergleich zu LMDB legt libmdbx viel Wert auf Codequalität, API-Stabilität, Tests und automatisierte Prüfungen. Ein Dienstprogramm zum Überprüfen der Integrität der Datenbankstruktur wird mit einigen Wiederherstellungsoptionen bereitgestellt.

Technologisch, libmdbx bietet ACID, strikte Änderungsserialisierung und nicht blockierende Lesevorgänge mit linearer Skalierung über die Kerne der CPU. Unterstützt automatische Komprimierung, automatische Steuerung der Datenbankgröße und Schätzung der Rangabfrage. Seit 2016 werden die Projekte von Positive Technologies gefördert und seit 2017 in ihren Produkten eingesetzt.

Für libmdbx, eine C++ API wird angeboten, sowie Bindungen, die mit Rust-, Haskell-, Python-, NodeJS-, Ruby-, Go- und Nim-Enthusiasten kompatibel sind. Für libfpta ist nur die API-Beschreibung in Form einer C/C++-Headerdatei öffentlich verfügbar.

Zusätzlich zur Unterstützung von Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD und anderen kompatiblen Systemen POSIX.1-2008.

Wichtigste neue Funktionen von libmdbx 0.10.4

In dieser neuen Version von libmdbx 0.10.4 die Entwickler haben daran gearbeitet, die Möglichkeit für spielbare Builds bereitzustellen, Darüber hinaus wurde das Testen verbessert und Testskripte erweitert, um alle erreichbaren nicht isomorphen Zustände des Seitenbaums und des GC-Inhalts innerhalb der Datenbank zu überprüfen.

In der C++ API einmal behoben "noexcept", zusätzliche Überladung für die Methode "Cursor :: Erase ()" hinzugefügt, Implementierung von Puffern wird durch Verwendung von "std :: string" erleichtert, um das Alignment sicherzustellen (aktuell für CLANG libstdc ++)

Darüber hinaus wird auch hervorgehoben, dass es wurde eine stufenweise Verifizierung durchgeführt, die um eine Reihe von Verifizierungen ergänzt wurde um die Stabilität bei mutwilliger Beschädigung der Datenbank zu gewährleisten.

Auf der anderen Seite wird hervorgehoben, dass die Suche nach den für LTO (Link Time Optimization) notwendigen Compilerkomponenten in den CMake-Skripten verbessert wurde, zudem die maximale Anzahl gleichzeitiger Leser auf 32.767 erhöht wurde und auch die Performance gestiegen ist verbessert bei Verwendung von Valgrind und AddressSanitizer.

In Bezug auf Fehlerbehebungen die in dieser neuen Version gemacht wurden, werden folgende erwähnt:

  • Es wurde ein Fehler behoben, bei dem in sehr seltenen Fällen eine Schleife / ein Absturz während des Festschreibens einer Transaktion auftreten konnte. Das Problem wurde von Spezialisten von Positive Technologies bei internen Tests ihrer eigenen Produkte identifiziert.
  • Regression im Überlaufalgorithmus für schmutzige Seiten (selektive Entfernung geänderter Datenbankseiten) behoben, die sich in seltenen unerwarteten MDBX_PROBLEM-Fehlern beim Ändern von Daten in großen Transaktionen manifestiert.
  • Kleinere Probleme mit UndefinedBehaviorSanitizer und Coverity Scan wurden behoben.
    Behoben: veraltete und nicht verwendete interne Flags, die "P_DIRTY" auf Seiten überprüfen, die in Datenbankbildern verschachtelt sind, die von älteren Versionen der Bibliothek erstellt wurden.
  • Rekursive Verwendung der SRW-Sperre unter Windows bei der Arbeit im MDBX_NOTLS-Modus (ohne Verwendung des lokalen Threadspeichers) behoben, Boot-ID-Generierung bei Änderung der Systemzeit behoben, verbesserte Erkennung von WSL1 und WSL2 , Möglichkeit zum Öffnen einer mit eingehängten Plan 9-Datenbank hinzugefügt DrvFS.

Schließlich wenn Sie mehr darüber wissen möchten Über diese neue Version können Sie die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.