Ntọhapụ nke arụmarụ dị elu agbakwunyere DBMS libmdbx 0.10.4 na libfpta 0.3.9

A tọhapụrụ ọba akwụkwọ libmdbx 0.10.4 (MDBX) na mmejuputa nchekwa data agbakwunyere uru dị elu, yana ọbá akwụkwọ libfpta 0.3.9 (FPTA), nke na-eme ihe nnochite anya data nwere akara nke abụọ na nke mejupụtara. n'elu MDBX. A na-ekesa ọba akwụkwọ abụọ a n'okpuru ikikere OSI kwadoro. A na-akwado sistemụ arụmọrụ ugbu a na ihe owuwu ụlọ, yana Russian Elbrus 2000.

N'akụkọ ihe mere eme, libmdbx bụ nrụgharị miri emi nke LMDB DBMS ma dị elu karịa nna nna ya na ntụkwasị obi, nhazi atụmatụ na arụmọrụ. Tụnyere LMDB, libmdbx na-etinye aka na mma koodu, nkwụsi ike API, nnwale na nlele akpaaka. A na-ewepụta ngwa maka ịlele iguzosi ike n'ezi ihe nke usoro nchekwa data yana ụfọdụ ike mgbake.

Nkà na ụzụ maara ihe, libmdbx na-enye ACID, mgbanwe mgbanwe siri ike, yana enweghị mgbochi na-agụ ya na ntanetị n'ofe cores CPU. Akwado nkwado akpaaka, njikwa nha nchekwa data akpaka, yana nleba anya ajụjụ. Ebe ọ bụ na 2016, a na-akwụ ụgwọ ọrụ site na Teknụzụ Dị Mma na ebe ọ bụ na 2017 ejirila ya na ngwaahịa ya.

libmdbx na-enye C++ API, yanakwa njide asụsụ nke ndị na-anụ ọkụ n'obi na-akwado maka Rust, Haskell, Python, NodeJS, Ruby, Go, na Nim. Maka libfpta, naanị nkọwa API dị n'ihu ọha n'ụdị faịlụ nkụnye C/C++.

Nnukwu ihe ọhụrụ, ndozi na mmezi agbakwunyere kemgbe akụkọ gara aga na Mee 9:

  • Na-eme ka ihe nrụpụta nwere ike imepụtagharị.
  • Edoziri ahụhụ n'ihi na, n'ọnọdụ dị oke ụkọ, loop/frize nwere ike ime n'oge azụmahịa. Ndị ọkachamara na-ahụ maka teknụzụ Positive Tecnologies chọpụtara nsogbu ahụ n'oge nnwale ime nke ngwaahịa nke ha.
  • Emeziwanye ule wee gbasaa ọnọdụ nlele iji lelee steeti niile na-abụghị isomorphic nke osisi ibe yana ọdịnaya GC n'ime nchekwa data.
  • Na C ++ API, a na-edozi agbakwunyere "ọ dịghị ma e wezụga", agbakwunyere ihe ndị ọzọ maka usoro "cursor :: erase()" , echekwala mmejuputa nke buffers site na iji "std :: eriri" iji hụ na nhazi. (dị mkpa maka CLAG libstdc++).
  • Ntughari n'ime ibe ruru unyi na-ekpochapụ algọridim (nhọrọ ejection nke ibe nchekwa data gbanwere) nke gosipụtara site na mperi a na-atụghị anya ya MDBX_PROBLEM mgbe agbanwere data na nnukwu azụmahịa.
  • Emere ule phasing na mgbakwunye nke ọtụtụ nyocha iji hụ na nkwụsi ike ma ọ bụrụ na ebum n'obi mebie nchekwa data.
  • Obere ịdọ aka ná ntị edozira akọwapụtaghị omumeSanitizer na ihe nyocha mkpuchi mkpuchi.
  • Nyochaa nke emechiela ma anaghịzi eji ọkọlọtọ ime "P_DIRTY" n'ime ibe ndị akwụgoro n'ime onyonyo nchekwa data nke ụdị ọba akwụkwọ ochie mebere.
  • N'ime edemede CMake, a na-emeziwanye ọchụchọ maka akụrụngwa mkpokọta chọrọ maka LTO (njikarịcha oge njikọ).
  • Ọnụ ọgụgụ kachasị nke ndị na-agụ ihe n'otu oge ka agbagoro ruo 32767.
  • Emelitere arụmọrụ mgbe ị na-eji Valgrind na AddressSanitizer.
  • Na Windows, eji SRW-mkpọchi na-emegharị ugboro ugboro mgbe ị na-arụ ọrụ na ọnọdụ MDBX_NOTLS (na-ejighi eri ebe nchekwa mpaghara) ewepụla, emeziwo ọgbọ bootid ma ọ bụrụ na oge usoro agbanweela, nchọpụta WSL1 na WSL2 ka mma, na ikike mepee nchekwa data na Atụmatụ 9 etinyegoro site na DrvFS ka agbakwunyere.
  • Na mkpokọta, e mere ihe karịrị 160 mgbanwe na faịlụ 57, ~ 5000 ahịrị agbakwunyere, ~ 2500 ehichapụrụ.

Ọ ga-amasị m ikele ndị otu Erigon oru ngo (Ethereum ecosystem) maka enyemaka ha n'ule n'ọnọdụ dị oke egwu. Ọ dị ịrịba ama na n'ime ọnwa ise kemgbe a tọhapụrụ libmdbx v0.10.0, na mpịakọta nchekwa data nke 1-2 TB na ntinye Erigon ọ bụla (eji na 7% nke Ethereum nodes), ọ bụ naanị akụkọ atọ nke nrụrụ nchekwa data natara, niile. nke mere n'ihi ihe ndị dị na mpụga, ọ bụghịkwa njehie software: n'ọnọdụ abụọ kpatara ya bụ ọdịda RAM, na nke atọ, njehie na-emegharị data na nhazi nhazi nke subsystem nchekwa site na iji BTRFS.

isi: opennet.ru

Tinye a comment