Die kompakte, eingebettete Datenbank-Engine libmdbx 0.9.1 wurde veröffentlicht.

Veröffentlicht Version 0.9.1 der Bibliothek libmdbx (MDBX) mit der Implementierung einer leistungsstarken, kompakten Embedded-Datenbank der SchlĂŒssel-Wert-Klasse. Der Code von libmdbx wird unter der Lizenz OpenLDAP Public License.

Die aktuelle Version ist ein Kompromiss zwischen dem Ziel, eine langfristig stabile Version 1.0 mit vollumfĂ€nglicher C++-UnterstĂŒtzung zu veröffentlichen und dem Wunsch, Veröffentlichungen nicht aufgrund der Unvorbereitetheit einer neuen C++-API zu verzögern. Die vorgestellte Version ist das Ergebnis von 9 Monaten Arbeit zur Stabilisierung der Bibliothek und Verbesserung ihrer Benutzerfreundlichkeit und enthĂ€lt auch eine Vorabversion der C++-API.

Die Bibliothek libmdbx ist nicht einfach ein "Fork", sondern ein grundlegend ĂŒberarbeiteter Nachfolger LMDB — einer transaktionalen Embedded-Datenbank der SchlĂŒssel-Wert-Klasse basierend auf B+-BĂ€umen ohne vorausschauender Protokollierung, die es mehreren Prozessen ermöglicht, konkurrierend und effizient mit lokal geteilten (nicht netzwerkbasierten) Datenbanken ohne einen dedizierten Serverprozess zu arbeiten. Libmdbx ist grundsĂ€tzlich erweitert Die Möglichkeiten seines VorgĂ€ngers werden verbessert, wĂ€hrend gleichzeitig die Nachteile beseitigt oder gemildert werden. Die Entwickler sind ĂŒberzeugt, dass libmdbx etwas schneller und wesentlich zuverlĂ€ssiger als LMDB ist.

libmdbx bietet ACID, strenge Serialisierung von Änderungen und nicht blockierendes Lesen mit linearer Skalierung auf CPU-Kerne. Die Ergebnisse der Leistungstests (Parallelversendung von Lese-/Suchanfragen in 1-2-4-8 Threads auf einem i7-4600U mit 2 physischen Kernen im 4-Thread HyperThread-Modus):

Die kompakte, eingebettete Datenbank-Engine libmdbx 0.9.1 wurde veröffentlicht.

Die wichtigsten Unterschiede von MDBX im Vergleich zu LMDB:

  • Es wird wesentlich mehr Wert auf die CodequalitĂ€t, die „StabilitĂ€t“ der API, das Testen und automatische ÜberprĂŒfungen gelegt.
  • Weitaus mehr Kontrolle wĂ€hrend des Betriebs, angefangen bei der ParameterĂŒberprĂŒfung bis hin zur internen Audits der Datenbankstrukturen.
  • Automatische Kompaktion und automatisches Management der DatenbankgrĂ¶ĂŸe.
  • Ein einheitliches Datenbankformat fĂŒr 32-Bit- und 64-Bit-Versionen.
  • SchĂ€tzung der Abfragevolumina ĂŒber Bereiche (Range Query Estimation).
  • UnterstĂŒtzung von SchlĂŒsseln mit doppelt so langer LĂ€nge und benutzerdefinierter SeitenlĂ€nge der Datenbank.
  • Ein Tool zur ÜberprĂŒfung der IntegritĂ€t der Datenbankstruktur mit einigen Wiederherstellungsoptionen.

Die wichtigsten Neuerungen und Anpassungen nach der vorherigen Meldung mit der EinfĂŒhrung von Version 0.5 im Januar 2020:

  • FĂŒr schnelle UnterstĂŒtzung und Fragen wurde eine offene Gruppe auf Telegram erstellt..
  • Mehr als ein Dutzend Fehler und Unstimmigkeiten wurden behoben (siehe Änderungsprotokoll).
  • Eine Vielzahl von Tippfehlern und Rechtschreibfehlern wurde korrigiert, zahlreiche kosmetische Verbesserungen.
  • Die TestfĂ€lle wurden erweitert.
  • UnterstĂŒtzung fĂŒr iOS, Android, buildroot, Musl, uClibc, WSL1 und Wine.
  • Eine Vorabversion der C++ API wurde in einer Header-Datei vorgestellt..
  • Eingebaute Dokumentation im Doxygen-Format und automatische Generierung Online-Dokumentation wurde erstellt..
  • Automatische Erstellung von Archiven mit amalgamierten Quelltexten wurde sichergestellt.
  • UnterstĂŒtzung fĂŒr die Vorbereitung von Transaktionen und Cursors, Benutzerkontexte fĂŒr Transaktionen und Cursors wurde hinzugefĂŒgt.
  • ZusĂ€tzliche Methoden zur Kontrolle der referenziellen IntegritĂ€t in MVCC-Snapshots von B+Tree wurden implementiert.
  • UnterstĂŒtzung fĂŒr die ÜberprĂŒfung des MVCC-Snapshots der DB, zugĂ€nglich ĂŒber jede Metaseite mit Umschaltmöglichkeit zur Wiederherstellung, wurde hinzugefĂŒgt.
  • UnterstĂŒtzung fĂŒr die Wiedereröffnung der DB aus einem Prozess zu Testzwecken usw. wurde implementiert.
  • Die automatische Verarbeitung der Option MDBX_NOSUBDIR beim Öffnen der Datenbank wurde implementiert.
  • Funktionen zur Bildung von GanzzahlenschlĂŒsseln aus Fließkommawerten und 'universellen' JavaScript-Zahlen wurden hinzugefĂŒgt.
  • Insgesamt wurden 430 Änderungen an 93 Dateien vorgenommen, ĂŒber 25.000 Zeilen hinzugefĂŒgt und mehr als 8.500 Zeilen entfernt.

Die weitere Entwicklung von libmdbx wird sich auf die Bildung einer finalen C++-API, die Stabilisierung des Basiscodes, die Verbesserung der Benutzerfreundlichkeit der Bibliothek sowie die Erstellung von Paketen fĂŒr beliebte Linux-Distributionen konzentrieren. Zu den geplanten Erweiterungen gehört die UnterstĂŒtzung von SchlĂŒsseln im Format MessagePack.

Quelle: opennet.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster