Release van de high-performance embedded database libmdbx 0.11.3

De release van de libmdbx-bibliotheek 0.11.3 (MDBX) heeft plaatsgevonden, met de implementatie van een hoogpresterende, compacte, embedded key-value database. De code van libmdbx wordt verspreid onder de OpenLDAP Public License. Alle actuele besturingssystemen en architecturen worden ondersteund, evenals de Russische Elbrus 2000. Eind 2021 werd libmdbx gebruikt als backend voor opslag in de twee snelste Ethereum-clients — Erigon en de nieuwe 'Haai', die volgens beschikbare informatie de hoogst presterende Ethereum-client is.

Historisch gezien is libmdbx een grondige herwerking van de databasebeheerder LMDB en overtreft het zijn voorganger op het gebied van betrouwbaarheid, mogelijkheden en prestaties. In vergelijking met LMDB is er in libmdbx veel aandacht voor de codekwaliteit, een stabiele werking van de API, testen en automatische controles. Er wordt een tool geleverd voor het controleren van de integriteit van de database-structuur met enkele herstelmogelijkheden.

Technologisch biedt libmdbx ACID, strikte seriƫle wijziging en niet-blokkerende lezing met lineaire schaalbaarheid over CPU-kernen. Automatische compactificatie, automatische gegevensgroottebeheer en schatting van het volume van selecties op basis van bereiken (range query estimation) worden ondersteund. Sinds 2016 wordt het project gefinancierd door Positive Technologies en sinds 2017 wordt het in hun producten gebruikt.

Voor libmdbx wordt een C++ API aangeboden, evenals ondersteunde bindings voor talen zoals Rust, Haskell, Python, NodeJS, Ruby, Go en Nim, georganiseerd door enthousiastelingen.

De belangrijkste innovaties, verbeteringen en bugfixes die zijn toegevoegd na het vorige nieuws van 11 oktober:

  • De C++ API wordt als gebruiksklaar beschouwd.
  • De gegevens GC-update bij het vastleggen van enorme transacties is aanzienlijk versneld, wat vooral relevant is bij het gebruik van libmdbx in het Ethereum-ecosysteem.
  • De interne handtekening van het databaseformaat is gewijzigd met ondersteuning voor automatische updates, die volledig transparant zijn voor gebruikers. Dit voorkomt valse positieve meldingen van databasebeschadiging wanneer verouderde versies van de bibliotheek worden gebruikt voor het lezen van transacties die zijn vastgelegd door actuele versies.
  • Functies mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() en mdbx_env_get_syncbytes() zijn toegevoegd. Ondersteuning voor de operatie MDBX_SET_UPPERBOUND is toegevoegd.
  • Alle waarschuwingen bij het bouwen met alle ondersteunde compilers in C++ 11/14/17/20-modus zijn verwijderd. Compatibiliteit met verouderde compilers is gegarandeerd: clang vanaf 3.9, gcc vanaf 4.8, inclusief bouw via sdevtoolset-9 voor CentOS/RHEL 7.
  • De mogelijkheid van conflicten met meta-pagina's na handmatige omschakeling naar een specifieke meta-pagina met de mdbx_chk-hulpprogramma is verwijderd.
  • De onverwachte fout MDBX_PROBLEM bij het overschrijven van verouderde meta-pagina's is opgelost.
  • Het probleem met de terugkeer van MDBX_NOTFOUND is opgelost in het geval van een onnauwkeurige overeenkomst bij het verwerken van de MDBX_GET_BOTH-aanroep.
  • Een compilatiefout op Linux is verholpen bij het ontbreken van headerbestanden met beschrijvingen van kernelinterfaces.
  • Een conflict tussen de interne vlag MDBX_SHRINK_ALLOWED en de optie MDBX_ACCEDE is opgelost.
  • Verschillende overbodige assert-controles zijn verwijderd.
  • De onverwachte terugkeer van MDBX_RESULT_TRUE vanuit de functie mdbx_env_set_option() is verholpen.
  • In totaal zijn meer dan 90 wijzigingen aangebracht in 25 bestanden, ongeveer 1300 regels toegevoegd en ongeveer 600 verwijderd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster