Itusilẹ ti iṣẹ-giga ifibọ DBMS libmdbx 0.10.4 ati libfpta 0.3.9

Awọn ile-ikawe libmdbx 0.10.4 (MDBX) ni a tu silẹ pẹlu imuse ti ibi-ipamọ-ipin-iwọn ipa-giga ti o ni ifibọ bọtini-iye data, ati ile-ikawe libfpta 0.3.9 (FPTA) ti o ni nkan ṣe, eyiti o ṣe afihan aṣoju tabular ti data pẹlu awọn atọka atẹle ati akojọpọ akojọpọ. lori MDBX. Awọn ile-ikawe mejeeji ti pin labẹ awọn iwe-aṣẹ ifọwọsi OSI. Gbogbo awọn ọna ṣiṣe lọwọlọwọ ati awọn faaji ni atilẹyin, bakanna bi Russian Elbrus 2000.

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, awọn iṣẹ akanṣe ti ni owo nipasẹ Awọn Imọ-ẹrọ Rere ati lati ọdun 2017 ti lo ninu awọn ọja rẹ.

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. Fun libfpta, apejuwe API nikan wa ni gbangba ni irisi faili akọsori C/C++ kan.

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 Karun ọjọ 9:

  • Mu ki awọn kikọ ti o le ṣe atunṣe ṣiṣẹ.
  • Kokoro kan ti o wa titi nitori eyiti, ni awọn ipo to ṣọwọn, lupu kan / didi le waye lakoko ṣiṣe idunadura kan. Iṣoro naa jẹ idanimọ nipasẹ awọn alamọja Tecnologies Rere lakoko idanwo inu ti awọn ọja tiwọn.
  • Awọn idanwo ti ni ilọsiwaju ati pe awọn oju iṣẹlẹ idanwo ti gbooro lati ṣayẹwo gbogbo awọn ipinlẹ ti kii ṣe isomorphic ti o le de ọdọ igi oju-iwe ati awọn akoonu GC inu ibi ipamọ data.
  • Ninu C ++ API, afikun “ayafi” ti wa titi, a ti ṣafikun awọn afikun apọju fun ọna “kọsọ :: nu ()”, imuse ti awọn buffers ti wa ni fipamọ ni lilo “std :: okun” lati rii daju titete. (ibaramu fun CLAG libstdc++).
  • A padasẹyin ni idọti iwe idasonu alugoridimu (yiyan ejection ti yi pada database ojúewé) ti o ti han nipa a toje airotẹlẹ MDBX_PROBLEM aṣiṣe nigba iyipada data ni tobi lẹkọ ti a ti kuro.
  • Idanwo ipele kan ni a ṣe pẹlu afikun ti nọmba awọn sọwedowo lati rii daju iduroṣinṣin ni iṣẹlẹ ti ibaje imotara si ibi ipamọ data.
  • Awọn ikilọ kekere ti o wa titi Aisọye IwadiIdimọ ati Awọn ọran Iwoye Ibo.
  • Ṣiṣayẹwo ti o wa titi ti igba atijo ko si lo asia inu “P_DIRTY” ni awọn oju-iwe ti o ni itẹle inu awọn aworan data data ti a ṣẹda nipasẹ awọn ẹya agbalagba ti ile-ikawe naa.
  • Ninu awọn iwe afọwọkọ CMake, wiwa fun awọn paati alakojọ ti o nilo fun LTO (imudara akoko-ọna asopọ) ti ni ilọsiwaju.
  • Nọmba ti o pọju ti awọn oluka nigbakanna ti pọ si 32767.
  • Imudara iṣẹ ṣiṣe nigba lilo Valgrind ati AdirẹsiSanitizer.
  • Lori Windows, lilo atunṣe ti SRW-titiipa nigbati o n ṣiṣẹ ni ipo MDBX_NOTLS (laisi lilo ibi ipamọ agbegbe o tẹle ara) ti yọkuro, iran bootid ti wa titi ti akoko eto ba ti yipada, wiwa WSL1 ati WSL2 ti ni ilọsiwaju, ati agbara lati ṣii aaye data lori Eto 9 ti a gbe nipasẹ DrvFS ti ṣafikun.
  • Ni apapọ, diẹ sii ju awọn iyipada 160 lọ si awọn faili 57, ~ 5000 awọn ila ti a fi kun, ~ 2500 ti paarẹ.

Emi yoo fẹ paapaa lati dupẹ lọwọ ẹgbẹ iṣẹ akanṣe Erigon (Ethereum ilolupo) fun iranlọwọ wọn ni idanwo ni awọn oju iṣẹlẹ lilo to gaju. O ṣe pataki pe ni oṣu marun lati igbasilẹ ti libmdbx v0.10.0, pẹlu iwọn didun data ti 1-2 TB ni fifi sori Erigon kọọkan (ti a lo lori 7% ti awọn apa Ethereum), awọn iroyin mẹta nikan ti ibajẹ data data ni a gba, gbogbo eyiti o ṣẹlẹ nitori awọn idi ita, kii ṣe awọn aṣiṣe sọfitiwia: ni awọn ọran meji idi naa jẹ awọn ikuna Ramu, ni ẹkẹta aṣiṣe ni atunto data ni iṣeto ni pato ti ipilẹ-ipamọ ipamọ nipa lilo BTRFS.

orisun: opennet.ru

Fi ọrọìwòye kun