Itusilẹ ti iṣẹ-giga ifibọ DBMS libmdbx 0.11.3

Ile-ikawe libmdbx 0.11.3 (MDBX) ti tu silẹ pẹlu imuse ti ibi-ipamọ-iwọn bọtini-iye iwapọ kan ti o ga julọ. Koodu libmdbx naa ni iwe-aṣẹ labẹ Iwe-aṣẹ Gbogbo eniyan OpenLDAP. Gbogbo awọn ọna ṣiṣe lọwọlọwọ ati awọn ile ayaworan ni a ṣe atilẹyin, bakanna bi Russian Elbrus 2000. Ni opin 2021, libmdbx ni a lo bi afẹyinti ipamọ ninu awọn alabara Ethereum iyara meji - Erigon ati “Shark” tuntun, eyiti, ni ibamu si wa. alaye, jẹ alabara Ethereum ti o ga julọ.

Itan-akọọlẹ, libmdbx jẹ atunṣe jinlẹ ti LMDB DBMS ati pe o ga ju baba-nla rẹ ni igbẹkẹle, ṣeto ẹya ati iṣẹ. Ti a fiwera si LMDB, libmdbx n gbe itọkasi pupọ lori didara koodu, iduroṣinṣin API, idanwo, ati awọn sọwedowo adaṣe. IwUlO kan fun ṣiṣe ayẹwo iyege ti ipilẹ data pẹlu diẹ ninu awọn agbara imularada ti wa ni ipese.

Ọgbọn imọ-ẹrọ, libmdbx nfunni ni ACID, isọdọtun iyipada to lagbara, ati awọn kika ti kii ṣe idinamọ pẹlu iwọn laini kọja awọn ohun kohun Sipiyu. Iwapọ aifọwọyi, iṣakoso iwọn data aifọwọyi, ati iṣiro ibeere ibiti o jẹ atilẹyin. Lati ọdun 2016, iṣẹ akanṣe naa ti ni owo nipasẹ Awọn Imọ-ẹrọ Rere ati pe o ti lo ninu awọn ọja rẹ lati ọdun 2017.

libmdbx nfunni C ++ API kan, bakanna bi awọn isopọ ede ti o ni atilẹyin itara fun Rust, Haskell, Python, NodeJS, Ruby, Go, ati Nim.

Awọn imotuntun pataki, awọn ilọsiwaju ati awọn atunṣe ti a ṣafikun lati awọn iroyin iṣaaju ni Oṣu Kẹwa ọjọ 11:

  • C++ API ni a ka pe o ti ṣetan fun lilo.
  • Imudojuiwọn ti data GC nigba ṣiṣe awọn iṣowo nla ti ni iyara pupọ, eyiti o ṣe pataki paapaa nigba lilo libmdbx ni ilolupo eda abemi Ethereum.
  • Ibuwọlu inu ti ọna kika ibi ipamọ data ti yipada lati ṣe atilẹyin imudojuiwọn adaṣe, eyiti o han gbangba si awọn olumulo. Eyi n gba ọ laaye lati yọkuro awọn ifiranṣẹ ti o ni idaniloju nipa ibajẹ data data nigbati awọn ẹya igba atijọ ti ile-ikawe ti lo lati ka awọn iṣowo ti o gbasilẹ nipasẹ awọn ẹya lọwọlọwọ.
  • Awọn iṣẹ ti a ṣafikun mdbx_env_get_syncbytes (), mdbx_env_get_syncperiod () ati mdbx_env_get_syncbytes (). Atilẹyin ti a ṣafikun fun iṣẹ ṣiṣe MDBX_SET_UPPERBOUND.
  • Gbogbo awọn ikilo nigba kikọ pẹlu gbogbo awọn olupilẹṣẹ atilẹyin ni awọn ipo C ++ 11/14/17/20 ti yọkuro. Ibamu pẹlu awọn olupilẹṣẹ julọ jẹ idaniloju: clang ti o bẹrẹ lati 3.9, gcc bẹrẹ lati 4.8, pẹlu apejọ lilo cdevtoolset-9 fun CentOS/RHEL 7.
  • Ti ṣe atunṣe iṣeeṣe ti ija oju-iwe meta kan lẹhin ti o yipada pẹlu ọwọ si oju-iwe meta kan pato nipa lilo ohun elo mdbx_chk.
  • Aṣiṣe MDBX_PROBLEM airotẹlẹ ti o wa titi ti n pada nigbati o ba n tunkọ awọn oju-iwe meta ti ogún silẹ.
  • Ipadabọ MDBX_NOTFOUND ti o wa titi ni ọran ti ibaamu aiṣedeede nigba ṣiṣe ibeere MDBX_GET_BOTH kan.
  • Aṣiṣe akopọ ti o wa titi lori Lainos ni isansa ti awọn faili akọsori pẹlu awọn apejuwe ti awọn atọkun pẹlu ekuro.
  • Ija ti o wa titi laarin MDBX_SHRINK_ALLOWED asia inu ati aṣayan MDBX_ACCEDE.
  • Ọpọlọpọ awọn sọwedowo idaniloju ti ko wulo ni a ti yọkuro.
  • Ipadabọ airotẹlẹ ti o wa titi ti MDBX_RESULT_TRUE lati iṣẹ mdbx_env_set_option ().
  • Ni apapọ, diẹ sii ju awọn iyipada 90 lọ si awọn faili 25, ~ 1300 awọn ila ti a fi kun, ~ 600 ti paarẹ.

orisun: opennet.ru

Fi ọrọìwòye kun