Fa'asa'olotoina o le DBMS libmdbx 0.10.4 ma le libfpta 0.3.9 maualuga fa'atinoina.

O le faletusi libmdbx 0.10.4 (MDBX) na faʻasaʻolotoina ma le faʻatinoina o se faʻamaumauga maualuga faʻapipiʻi faʻapipiʻi faʻamaumauga autu, ma le faletusi libfpta 0.3.9 (FPTA) e fesoʻotaʻi, lea e faʻatinoina se faʻataʻitaʻiga o faʻamatalaga faʻatasi ma faʻamaumauga lona lua ma tuʻufaʻatasia. luga ole MDBX. O faletusi uma e lua o lo'o tufatufaina i lalo o laisene fa'amaonia a le OSI. O loʻo lagolagoina uma faiga faʻaoga ma fausaga faʻapitoa, faʻapea foʻi ma le Rusia Elbrus 2000.

I le tala faasolopito, o le libmdbx o se toe faʻaleleia loloto o le LMDB DBMS ma e sili atu i lona tuaa i le faʻatuatuaina, seti faʻaaliga ma faʻatinoga. Fa'atusatusa i le LMDB, libmdbx e tu'uina le tele o fa'amamafa i le tulaga lelei o le code, fa'amautu API, su'ega, ma siaki fa'apitoa. O se aoga mo le siakiina o le faʻamaoni o le fausaga o faʻamaumauga faʻatasi ai ma nisi o gafatia toe faʻaleleia o loʻo tuʻuina atu.

Fa'atekonolosi-poto, libmdbx ofo atu ACID, suiga malosi fa'asologa, ma le le poloka le faitau fa'atasi ma laina fa'asolo i luga ole CPU. E lagolagoina le fa'amaopoopoina otometi, fa'atonu le tele o fa'amaumauga o fa'amaumauga, ma le fa'atatauga o fesili. Talu mai le 2016, o poloketi na faʻatupeina e Positive Technologies ma talu mai le 2017 na faʻaaogaina i ana oloa.

libmdbx ofo atu se C++ API, faʻapea foʻi ma faʻasalalauga gagana lagolago mo Rust, Haskell, Python, NodeJS, Ruby, Go, ma Nim. Mo libfpta, na'o le fa'amatalaga API o lo'o avanoa fa'alaua'itele i le tulaga o se faila faila C/C++.

Fa'afouga tetele, fa'aleleia ma fa'asa'oga fa'aopoopo talu mai tala fou talu ai ia Me 9:

  • Fa'aaga mea e mafai ona toe fa'aleleia.
  • Fa'amauina se pusa ona, i tulaga e seasea tupu, e mafai ona tupu se matasele / fa'a'aisa a'o faia se fefa'ataua'iga. O le fa'afitauli na fa'ailoa e Positive Tecnologies fa'apitoa i le taimi o su'esu'ega i totonu o latou lava oloa.
  • Ua fa'aleleia su'ega ma fa'alautele fa'ata'ita'iga o su'ega e siaki uma tulaga e le mafai ona o'o atu i le isomorphic o le la'au itulau ma mea o lo'o i totonu ole GC i totonu ole fa'amaumauga.
  • I le C ++ API, ua faʻapipiʻiina se isi "leai se vagana ai", ua faʻaopoopoina le tele o uta faaopoopo mo le auala "cursor :: tape ()", o le faʻatinoga o paʻu ua faʻasaoina le faʻaogaina o le "std :: string" e faʻamautinoa le faʻaogaina. (talafeagai mo CLANG libstdc++).
  • O se toe fa'afo'i i totonu o le itulau eleelea e sasaa algorithm (filifilia ejection o suia itulau fa'amaumauga) lea na fa'aalia i se mea sese fa'afuase'i MDBX_PROBLEM pe a fa'aumatia fa'amatalaga i fefa'atauaiga tetele.
  • Sa faia se su'ega fa'asolosolo fa'atasi ma le fa'aopoopoina o le tele o siaki e fa'amautinoa ai le mautu pe a tula'i mai ma le loto i ai le fa'aleagaina o fa'amaumauga.
  • Fa'atonu lapataiga laiti UndefinedBehaviorSanitizer ma Coverity Scan mataupu.
  • Fa'amauina le siakiina o le fu'a tuai ma ua le toe fa'aogaina i totonu o le fu'a "P_DIRTY" i itulau fa'apipi'i i totonu o ata fa'amaumauga na faia e lomiga tuai o le faletusi.
  • I totonu o tusitusiga a le CMake, ua faʻaleleia atili le sailiga mo vaega faʻapipiʻi e manaʻomia mo le LTO (link-time optimization).
  • Ole numera maualuga ole faitau fa'atasi ua fa'aopoopo ile 32767.
  • Faʻaleleia le faʻatinoga pe a faʻaaoga Valgrind ma AddressSanitizer.
  • I luga o Windows, o le toe faʻaaogaina o le SRW-loka pe a galue i le MDBX_NOTLS mode (e aunoa ma le faʻaogaina o filo faʻapitonuʻu) ua faʻaumatia, ua faʻamautu le faʻatupuina o le bootid pe afai ua suia le taimi o le polokalama, ua faʻaleleia le iloa o WSL1 ma WSL2, ma le mafai ona faʻaogaina. tatala se database i luga o le Fuafuaga 9 faʻapipiʻi e ala i DrvFS ua faʻaopoopoina.
  • I le aofaʻi, e sili atu i le 160 suiga na faia i faila 57, ~ 5000 laina faʻaopoopo, ~ 2500 na tapeina.

Ou te fia faafetai faapitoa i le vaega o galuega faatino a Erigon (Ethereum ecosystem) mo la latou fesoasoani i le suʻeina o faʻataʻitaʻiga faʻaoga tele. E taua tele i totonu o le lima masina talu ona tuʻuina atu le libmdbx v0.10.0, faʻatasi ai ma se faʻamaumauga faʻamaumauga o 1-2 TB i faʻapipiʻi taʻitasi Erigon (faʻaaogaina i luga o le 7% o nodes Ethereum), naʻo le tolu lipoti o faʻamaumauga faʻasalalau na maua, uma o lea na tupu ona o mafuaʻaga i fafo, ae le o faʻalavelave faʻapipiʻi: i tulaga e lua o le mafuaʻaga o le faaletonu o le RAM, i le lona tolu o se mea sese i le toe setiina o faʻamaumauga i se faʻatulagaga patino o le subsystem teuina e faʻaaoga ai le BTRFS.

puna: opennet.ru

Faaopoopo i ai se faamatalaga