libmdbx 0.10.4 wordt geleverd met verschillende verbeteringen en bugfixes

Het uitkomen van versie 0.10.4 bibliotheken "Libmdbx" waarin in totaal meer dan 160 wijzigingen aangebracht in 57 bestanden, ~ 5000 regels toegevoegd en ~ 2500 verwijderd. Voor degenen die niet bekend zijn met libmdbx, je moet weten dat dit een set bibliotheken is die een implementatie zijn van een compacte, krachtige ingebedde database van de sleutelwaardeklasse.

Historisch gezien libmdbx is een grondige herwerking van de LMDB DBMS en presteert beter dan zijn voorganger op het gebied van betrouwbaarheid, functies en prestaties. In vergelijking met LMDB legt libmdbx veel nadruk op codekwaliteit, API-stabiliteit, testen en geautomatiseerde controles. Een hulpprogramma om de integriteit van de databasestructuur te controleren, wordt geleverd met enkele herstelopties.

technologisch, libmdbx biedt ACID, strikte wijzigingsserialisatie en niet-blokkerende uitlezingen met lineaire schaling over de kernen van de CPU. Ondersteunt automatische verdichting, automatische controle van de databasegrootte en schatting van rangquery's. Sinds 2016 worden de projecten gefinancierd door Positive Technologies en sinds 2017 in hun producten gebruikt.

Voor libmdbx, een C++ API wordt aangeboden, evenals bindingen die compatibel zijn met liefhebbers van Rust, Haskell, Python, NodeJS, Ruby, Go, Nim. Voor libfpta is alleen de API-beschrijving in de vorm van een C/C++-headerbestand openbaar beschikbaar.

Naast ondersteuning voor Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD en andere compatibele systemen POSIX.1-2008.

Belangrijkste nieuwe functies van libmdbx 0.10.4

In deze nieuwe versie van libmdbx 0.10.4 de ontwikkelaars hebben gewerkt om de mogelijkheid te bieden voor speelbare builds, Daarnaast is het testen verbeterd en zijn testscripts uitgebreid om alle haalbare niet-isomorfe toestanden van de paginastructuur en GC-inhoud in de database te controleren.

In de C ++ API eenmaal "nobehalve", extra overbelasting toegevoegd voor de methode "cursor :: erase ()", implementatie van buffers wordt verlicht door "std :: string" te gebruiken om uitlijning te garanderen (stroom voor CLANG libstdc ++)

Bovendien wordt dat ook benadrukt er is een gefaseerde verificatie uitgevoerd met toevoeging van een reeks verificaties om stabiliteit te garanderen in geval van opzettelijke schade aan de database.

Aan de andere kant wordt benadrukt dat het zoeken naar de compilercomponenten die nodig zijn voor LTO (linktime-optimalisatie) is verbeterd in de CMake-scripts, daarnaast is het maximale aantal gelijktijdige lezers verhoogd tot 32.767 en ook de prestaties zijn verbeterd verbeterd bij gebruik van Valgrind en AddressSanitizer.

Met betrekking tot bugfixes die in deze nieuwe versie zijn gemaakt, worden vermeld:

  • Een bug opgelost waarbij, in zeer zeldzame omstandigheden, een lus / crash kon optreden tijdens het plegen van een transactie. Het probleem werd vastgesteld door specialisten van Positive Technologies tijdens interne tests van hun eigen producten.
  • Vaste regressie in het algoritme voor het morsen van vuile pagina's (selectieve verwijdering van gewijzigde databasepagina's) die zich manifesteert in een zeldzame onverwachte MDBX_PROBLEM-fout bij het wijzigen van gegevens in grote transacties.
  • Kleine problemen met UndefinedBehaviorSanitizer en Coverity Scan opgelost.
    Vaste verouderde en ongebruikte interne vlagcontrole "P_DIRTY" op pagina's die zijn genest in databaseafbeeldingen die zijn gemaakt door oude bibliotheekversies.
  • Vast recursief gebruik van SRW-lock in Windows bij het werken in de MDBX_NOTLS-modus (zonder gebruik te maken van lokale threadopslag), vaste bootid-generatie in geval van systeemtijdverandering, verbeterde detectie van WSL1 en WSL2 , de mogelijkheid toegevoegd om een ​​Plan 9-database te openen die is gekoppeld met DrvFS.

Eindelijk als u er meer over wilt weten over deze nieuwe versie kunt u de details bekijken In de volgende link.


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.