Siideynta waxqabadka sare ee gundhigga DBMS libmdbx 0.10.4 iyo libfpta 0.3.9

Maktabadaha libmdbx 0.10.4 (MDBX) ayaa la sii daayay iyada oo la hirgelinayo xog-ururin waxqabad sare leh oo ku duugan xog-qiimo muhiim ah, iyo maktabadda libfpta 0.3.9 (FPTA), oo fulisa matalaad xogeed oo leh tusmooyin sare iyo isku dhafan Tusmada ugu hooseysa ee MDBX. Labada maktabadoodba waxa lagu qaybiyaa shatiyada OSI ee la ansixiyay. Dhammaan nidaamyada hawlgalka hadda jira iyo naqshadaha waa la taageeray, iyo sidoo kale Ruush Elbrus 2000.

Taariikh ahaan, libmdbx waa dib-u-shaqayn qoto dheer oo LMDB DBMS ah waxayna ka sarraysaa awoowgeed isku halaynta, habaynta muuqaalka iyo waxqabadka. Marka la barbar dhigo LMDB, libmdbx waxa ay culays badan saartaa tayada koodka, xasiloonida API, tijaabinta, iyo jeegaga otomaatiga ah. Utility loogu talagalay hubinta hufnaanta qaab dhismeedka keydka xogta oo leh xoogaa awoodo soo kabasho ah ayaa la keenay.

Tignoolajiyada-caqliga leh, libmdbx waxay bixisaa ACID, is-beddel xoog leh oo taxane ah, iyo akhrin aan xannibayn oo leh miisaan toosan oo ku dhex jira xudunta CPU. Is-afgaradka tooska ah, maaraynta cabbirka xogta tooska ah, iyo qiyaasta weydiinta baaxadda waa la taageeray. Laga soo bilaabo 2016, mashaariicda waxaa lagu maalgeliyay Teknolojiyadda Wanaagsan tan iyo 2017 ayaa loo adeegsaday alaabteeda.

libmdbx waxay bixisaa C++ API, iyo sidoo kale xamaasad ay taageerto luuqadaha Rust, Haskell, Python, NodeJS, Ruby, Go, iyo Nim. Wixii libfpta ah, kaliya sharaxaadda API ayaa si guud loo heli karaa qaab faylka C/C++ ee madaxa.

Wax cusub oo cusub, horumarin iyo sixid lagu daray ilaa warkii hore ee May 9:

  • Wuxuu sahlaa dhismooyinka dib loo soo saari karo.
  • Kutaan go'an oo ay sabab u tahay, xaalado aad dhif u ah, wareeg / baraf ayaa dhici karta inta lagu jiro macaamil ganacsi. Dhibaatada waxaa aqoonsaday khabiiro ku takhasusay Tignoolajiyada Wanaagsan inta lagu guda jiro baaritaanka gudaha ee alaabadooda.
  • Tijaabooyin waa la hagaajiyay oo xaaladaha tijaabada ayaa la balaariyay si loo hubiyo dhammaan gobolada aan la gaari karin ee aan isomorphic ahayn ee geedka bogga iyo waxa ku jira GC ee ku jira kaydka xogta.
  • C ++ API, wax dheeraad ah "marka laga reebo" ayaa la hagaajiyay, culeys dheeraad ah ayaa lagu daray habka "cursor :: tirtir ()", hirgelinta bakhaarrada ayaa laga badbaadiyay isticmaalka "std :: xadhig" si loo hubiyo isku-habboonaanta (ku habboon CLAG libstdc++).
  • Dib-u-celinta bogga wasakhaysan ee daadinta algorithm (ka saarista xulashada bogagga xogta ee la beddelay) oo ay ka muuqatay qalad naadir ah oo MDBX_PROBLEM aan la filayn markii la beddelayo xogta wax kala iibsiga weyn waa la tirtiray.
  • Tijaabo weji ah ayaa la qaaday iyada oo lagu daray tiro hubin ah si loo hubiyo xasilloonida haddii ay dhacdo dhaawac ula kac ah oo loo geysto kaydka xogta.
  • Digniino yaryar oo go'an oo aan la qeexin Habdhaqan nadiifiye iyo arrimaha Scan daboolka.
  • Hubinta go'an ee duugowday oo aan hadda la isticmaalin calanka gudaha "P_DIRTY" ee boggaga buulka leh ee gudaha sawirada xogta ee ay sameeyeen nuucyadii hore ee maktabadda.
  • Qoraallada CMake, raadinta qaybaha isku-darka ee looga baahan yahay LTO (isku-xidhka-waqtiga hagaajinta) waa la hagaajiyay.
  • Tirada ugu badan ee akhristayaasha isku mar ah ayaa la kordhiyey oo laga dhigay 32767.
  • Waxqabadka la hagaajiyay marka la isticmaalayo Valgrind iyo AddressSanitizer.
  • On Windows, isticmaalka soo noqnoqda ee SRW-qufulka marka ka shaqaynaysa habka MDBX_NOTLS (iyada oo aan la isticmaalin dunta kaydinta maxalliga ah) waa la tirtiray, jiilka bootin ayaa la hagaajiyay haddii wakhtiga nidaamka isbeddelay, WSL1 iyo WSL2 ogaanshaha waa la hagaajiyay, iyo awoodda fur kaydka xogta Qorshaha 9 ee lagu rakibay DrvFS ayaa lagu daray.
  • Wadar ahaan, in ka badan 160 isbeddel ayaa lagu sameeyay 57 fayl, ~ 5000 ayaa lagu daray, ~ 2500 waa la tirtiray.

Waxaan si gaar ah u jeclaan lahaa inaan uga mahadceliyo kooxda mashruuca Erigon (Ethereum ecosystem) caawintooda xagga tijaabinta xaaladaha isticmaalka xad dhaafka ah. Waxaa muhiim ah in shan bilood gudahood tan iyo markii la sii daayay libmdbx v0.10.0, oo leh mugga xogta 1-2 TB ee rakibaadda Erigon kasta (oo loo adeegsaday 7% ee qanjidhada Ethereum), kaliya saddex warbixinood oo ku saabsan musuqmaasuqa xogta ayaa la helay, dhammaan taas oo ku dhacday sababo dibadda ah, oo aan ahayn khaladaadka software: laba xaaladood oo sababtu waxay ahayd RAM-gu guuldareystay, saddexaadna qalad dib u habeynta xogta qaabeynta gaarka ah ee nidaamka hoose ee kaydinta iyadoo la adeegsanayo BTRFS.

Source: opennet.ru

Add a comment