Verëffentlechung vun der kompakt embedded DBMS libmdbx 0.9.1

Verëffentlecht Bibliothéik Versioun 0.9.1 libmdbx (MDBX) Ëmsetzung vun enger héich performant, kompakt embedded Schlëssel-Wäert Datebank. De libmdbx Code gëtt ënner enger Lizenz verdeelt OpenLDAP Ëffentlech Lizenz.

Déi aktuell Versioun ass e Kompromiss tëscht der Absicht fir eng laangfristeg stabil Versioun 1.0 mat voller C++ Ënnerstëtzung ze verëffentlechen an der Verzögerung fir Verëffentlechungen ze verzögeren wéinst Onpreparatioun fir déi nei C++ API ze afréieren. Déi presentéiert Verëffentlechung ass d'Resultat vun 9 Méint Aarbecht fir d'Bibliothéik ze stabiliséieren an hir Benotzerfrëndlechkeet ze verbesseren, an enthält och eng virleefeg Versioun C++ API.

D'libmdbx Bibliothéik ass net nëmmen eng "Gabel", mee e radikal nei designt Nokommen LMDB - Transaktiounen embedded DBMS vun der Klass "Schlësselwäert" baséiert op Bam B+ ouni proaktiv Logged, wat erlaabt Multi-threaded Prozesser kompetitiv an effizient mat enger lokaler gedeelt (net-Netzwierk) Datebank ouni eng speziell Serverprozess ze schaffen. libmdbx grondsätzlech erweidert Fäegkeete vu sengem Vorfahren, a gläichzäiteg d'Nodeeler eliminéiert oder reduzéiert. Zur selwechter Zäit, laut den Entwéckler, ass libmdbx e bësse méi séier a wesentlech méi zouverlässeg wéi LMDB.

libmdbx proposéiert sauerem, strikt Serialiséierung vun Ännerungen an net blockéierend Liesen mat linearer Skaléierung iwwer CPU Cores. Leeschtungstestresultater (Schecken parallel Lies-/Sich-Ufroen an 1-2-4-8 Threads op enger CPU i7-4600U mat 2 kierperleche Kären am 4-thread HyperThread Modus):

Verëffentlechung vun der kompakt embedded DBMS libmdbx 0.9.1

Déi wichtegst Differenzen tëscht MDBX an LMDB:

  • Grondsätzlech gëtt méi Opmierksamkeet op Codequalitéit, API Konsistenz, Testen an automatesch Kontrollen bezuelt.
  • Bedeitend méi Kontroll wärend der Operatioun, vu Parameteren iwwerpréift bis internen Audit vun Datebankstrukturen.
  • Auto-Kompaktifikatioun an automatesch Datebank Gréisst Gestioun.
  • Een eenzegen Datebankformat fir 32-Bit a 64-Bit Versammlungen.
  • Estimatioun vu Probevolumen no Beräicher (Gamme Query Estimatioun).
  • Ënnerstëtzung fir duebel sou laang Schlësselen a Benotzer-auswielbar Datebank Säit Gréisst.
  • En Utility fir d'Integritéit vun der Datebankstruktur mat e puer Erhuelungsfäegkeeten ze kontrolléieren.

Main Innovatiounen a Verbesserungen na virdrun news mat der Aféierung vun der Versioun 0.5 am Januar 2020:

  • En oppene System gouf erstallt fir prompt Ënnerstëtzung an Äntwerten op Froen. Telegram Grupp.
  • Méi wéi eng Dose Feeler a Mängel goufen eliminéiert (kuckt. changelog).
  • Vill Schreif- a Schreiffehler goufen fixéiert, a vill kosmetesch Verbesserunge goufen gemaach.
  • Testszenarie goufen erweidert.
  • Ënnerstëtzung fir iOS, Android, bauen root, musl, uClibc, WSL 1 и Wäin.
  • C ++ API Virschau verëffentlecht an eng Header Datei.
  • Built-in Dokumentatioun am Doxygen Format an automatesch Generatioun Online Dokumentatioun.
  • Automatesch Generatioun vun Archiver mat amalgaméiert Quelltexter gëtt zur Verfügung gestallt.
  • Zousätzlech Ënnerstëtzung fir Transaktiounen a Cursoren virzebereeden, Benotzerkontexter fir Transaktiounen a Cursoren.
  • Zousätzlech Methoden goufen implementéiert fir d'referentiell Integritéit a B + Bam MVCC Schnappschëss ze kontrolléieren.
  • Ënnerstëtzung bäigefüügt fir e MVCC Snapshot vun der Datebank z'iwwerpréiwen, zougänglech iwwer all Meta Säit mat der Fäegkeet fir d'Erhuelung ze wiesselen.
  • Implementéiert Ënnerstëtzung fir d'Datebank nei opzemaachen vun engem Prozess fir Testzwecker, etc.
  • Implementéiert automatesch Veraarbechtung vun der MDBX_NOSUBDIR Optioun wann Dir eng Datebank opmaacht.
  • Fonctiounen bäigefüügt fir ganz Zuelschlësselen aus Floating Point Wäerter a JavaScript "universellen" Zuelen ze generéieren.
  • Am Ganzen goufen 430 Ännerungen gemaach, déi 93 Dateien beaflossen, méi wéi 25 Tausend Zeilen goufen derbäigesat, méi wéi 8.5 Tausend Zeilen goufen geläscht.

Déi spéider Entwécklung vu libmdbx konzentréiert sech op déi lescht C ++ API, weider Stabiliséierung vum Basiscode, d'Verbesserung vun der Benotzerfrëndlechkeet vun der Bibliothéik a Verpakung fir populär Linux Verdeelungen. Ënnert de proposéierte Verbesserungen ass et derwäert ze notéieren Ënnerstëtzung fir Schlësselen am Format MessagePack.

Source: opennet.ru

Setzt e Commentaire