Utjefte fan ynbêde DBMS mei hege prestaasjes libmdbx 0.11.3

De libmdbx 0.11.3 (MDBX) bibleteek waard útbrocht mei de ymplemintaasje fan in hege-prestaasje kompakte ynbêde kaai-wearde databank. De libmdbx-koade is lisinsje ûnder de OpenLDAP Public License. Alle aktuele bestjoeringssystemen en arsjitektueren wurde stipe, lykas de Russyske Elbrus 2000. Oan 'e ein fan 2021 wurdt libmdbx brûkt as opslach-backend yn' e twa fluchste Ethereum-kliïnten - Erigon en de nije "Shark", dy't, neffens beskikber ynformaasje, is de heechste prestaasje Ethereum klant.

Histoarysk is libmdbx in djippe werynrjochting fan 'e LMDB DBMS en oertreft syn foarfaar yn termen fan betrouberens, funksjeset en prestaasjes. Yn ferliking mei LMDB leit libmdbx in protte klam op koadekwaliteit, API-stabiliteit, testen en automatisearre kontrôles. In hulpprogramma foar it kontrolearjen fan de yntegriteit fan 'e databankstruktuer wurdt levere mei guon herstelopsjes.

Technology-wize, libmdbx biedt ACID, sterke feroaring serialisaasje, en net-blokkearjende lêzings mei lineêre skaalfergrutting oer CPU-kearnen. Auto-kompaktifikaasje, automatysk behear fan databasegrutte, en skatting fan berikfragen wurde stipe. Sûnt 2016 is it projekt finansierd troch Positive Technologies en is sûnt 2017 brûkt yn har produkten.

libmdbx biedt in C ++ API, lykas entûsjast-stipe taalbindingen foar Rust, Haskell, Python, NodeJS, Ruby, Go en Nim.

Wichtige ynnovaasjes, ferbetteringen en korreksjes tafoege sûnt it foarige nijs op 11 oktober:

  • De C ++ API wurdt beskôge klear foar gebrûk.
  • De fernijing fan GC-gegevens by it begean fan enoarme transaksjes is signifikant fersneld, wat foaral wichtich is by it brûken fan libmdbx yn it Ethereum-ekosysteem.
  • De ynterne hantekening fan it databankformaat is feroare om automatyske fernijing te stypjen, dy't folslein transparant is foar brûkers. Hjirmei kinne jo falsk-positive berjochten oer databankkorrupsje eliminearje as ferâldere ferzjes fan 'e bibleteek wurde brûkt om transaksjes te lêzen dy't opnommen binne troch aktuele ferzjes.
  • Tafoege funksjes mdbx_env_get_syncbytes (), mdbx_env_get_syncperiod () en mdbx_env_get_syncbytes (). Stipe tafoege foar de MDBX_SET_UPPERBOUND-operaasje.
  • Alle warskôgings by it bouwen mei alle stipe gearstallers yn C ++ 11/14/17/20-modi binne eliminearre. Kompatibiliteit mei legacy-kompilators wurdt garandearre: clang begjinnend fan 3.9, gcc fanôf 4.8, ynklusyf montage mei cdevtoolset-9 foar CentOS / RHEL 7.
  • Fixearre de mooglikheid fan in meta-side-konflikt nei it manuell oerskeakeljen nei in spesifike meta-side mei it mdbx_chk-hulpprogramma.
  • Unferwachte MDBX_PROBLEM-flater wurdt repareare dy't weromjûn wurdt by it oerskriuwen fan legacy metasiden.
  • Fixearre weromkommende MDBX_NOTFOUND yn gefal fan in net-eksakte wedstriid by it ferwurkjen fan in MDBX_GET_BOTH-fersyk.
  • In kompilaasjeflater reparearre op Linux by it ûntbrekken fan koptekstbestannen mei beskriuwingen fan ynterfaces mei de kernel.
  • In konflikt reparearre tusken de MDBX_SHRINK_ALLOWED ynterne flagge en de MDBX_ACCEDE opsje.
  • Ferskate ûnnedige assertkontrôles binne elimineare.
  • Fêst ûnferwachte weromkomst fan MDBX_RESULT_TRUE út mdbx_env_set_option () -funksje.
  • Yn totaal waarden mear as 90 wizigingen makke oan 25 bestannen, ~1300 rigels waarden tafoege, ~600 waarden wiske.

Boarne: opennet.ru

Add a comment