Vrystelling van hoëprestasie ingebedde DBMS libmdbx 0.11.3

Die libmdbx 0.11.3 (MDBX) biblioteek is vrygestel met die implementering van 'n hoë-prestasie kompakte ingebedde sleutel-waarde databasis. Die libmdbx-kode is gelisensieer onder die OpenLDAP Public License. Alle huidige bedryfstelsels en argitekture word ondersteun, sowel as die Russiese Elbrus 2000. Aan die einde van 2021 word libmdbx as 'n stoor-backend gebruik in die twee vinnigste Ethereum-kliënte - Erigon en die nuwe "Shark", wat, volgens beskikbare inligting, is die hoogste-prestasie Ethereum kliënt.

Histories is libmdbx 'n diepgaande herbewerking van die LMDB DBMS en is beter as sy voorouer in betroubaarheid, kenmerkstel en werkverrigting. In vergelyking met LMDB, plaas libmdbx baie klem op kodekwaliteit, API-stabiliteit, toetsing en outomatiese kontrole. 'n Hulpmiddel om die integriteit van die databasisstruktuur te kontroleer met sommige herstelvermoëns word verskaf.

Tegnologie-gewys, libmdbx bied ACID, sterk verandering serialisering, en nie-blokkerende lees met lineêre skaal oor SVE kerns. Outo-kompaktifisering, outomatiese databasisgroottebestuur en reeksnavraagskatting word ondersteun. Sedert 2016 word die projek deur Positive Technologies gefinansier en word dit sedert 2017 in sy produkte gebruik.

libmdbx bied 'n C++ API, sowel as entoesias-ondersteunde taalbindings vir Rust, Haskell, Python, NodeJS, Ruby, Go en Nim.

Groot innovasies, verbeterings en regstellings bygevoeg sedert die vorige nuus op 11 Oktober:

  • Die C++ API word beskou as gereed vir gebruik.
  • Die opdatering van GC-data wanneer groot transaksies gepleeg word, is aansienlik versnel, wat veral belangrik is wanneer libmdbx in die Ethereum-ekosisteem gebruik word.
  • Die interne handtekening van die databasisformaat is verander om outomatiese opdatering te ondersteun, wat heeltemal deursigtig is vir gebruikers. Dit laat jou toe om vals-positiewe boodskappe oor databasiskorrupsie uit te skakel wanneer verouderde weergawes van die biblioteek gebruik word om transaksies te lees wat deur huidige weergawes aangeteken is.
  • Bygevoeg funksies mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() en mdbx_env_get_syncbytes(). Bygevoeg ondersteuning vir die MDBX_SET_UPPERBOUND operasie.
  • Alle waarskuwings wanneer gebou word met alle ondersteunde samestellers in C++ 11/14/17/20 modusse is uitgeskakel. Verenigbaarheid met verouderde samestellers word verseker: klang vanaf 3.9, gcc vanaf 4.8, insluitend samestelling met cdevtoolset-9 vir CentOS/RHEL 7.
  • Die moontlikheid van 'n metabladsy-konflik reggestel nadat u handmatig na 'n spesifieke metabladsy oorgeskakel het met behulp van die mdbx_chk-nutsding.
  • Vaste onverwagte MDBX_PROBLEM-fout wat teruggestuur word wanneer verouderde metabladsye oorskryf word.
  • Vaste terugstuur van MDBX_NOTFOUND in die geval van 'n onpresiese passing wanneer 'n MDBX_GET_BOTH-versoek verwerk word.
  • Het 'n samestellingsfout op Linux reggestel in die afwesigheid van koplêers met beskrywings van koppelvlakke met die kern.
  • Het 'n konflik tussen die MDBX_SHRINK_ALLOWED interne vlag en die MDBX_ACCEDE opsie reggestel.
  • Verskeie onnodige beweringskontroles is uitgeskakel.
  • Vaste onverwagte terugkeer van MDBX_RESULT_TRUE vanaf mdbx_env_set_option() funksie.
  • In totaal is meer as 90 veranderinge aan 25 lêers aangebring, ~1300 reëls is bygevoeg, ~600 is uitgevee.

Bron: opennet.ru

Voeg 'n opmerking