Tso tawm ntawm kev ua haujlwm siab embedded DBMS libmdbx 0.11.3

Lub tsev qiv ntawv libmdbx 0.11.3 (MDBX) tau raug tso tawm nrog kev ua haujlwm ntawm kev ua haujlwm siab compact embedded key-value database. Lub libmdbx code muaj ntawv tso cai raws li OpenLDAP Public License. Tag nrho cov kev khiav hauj lwm tam sim no thiab architectures tau txais kev txhawb nqa, nrog rau Lavxias teb sab Elbrus 2000. Thaum kawg ntawm 2021, libmdbx yog siv los ua qhov chaw khaws cia hauv ob tus neeg siv Ethereum ceev tshaj plaws - Erigon thiab "Shark" tshiab, uas, raws li muaj. cov ntaub ntawv, yog qhov ua tau zoo tshaj plaws Ethereum tus neeg siv khoom.

Keeb kwm, libmdbx yog qhov sib sib zog nqus rov ua haujlwm ntawm LMDB DBMS thiab zoo dua rau nws cov poj koob yawm txwv hauv kev ntseeg tau, teeb tsa thiab kev ua haujlwm. Piv rau LMDB, libmdbx muab ntau qhov tseem ceeb ntawm cov lej zoo, API ruaj khov, kev sim, thiab kev kuaj xyuas tsis siv neeg. Ib qho txiaj ntsig rau kev tshuaj xyuas qhov ncaj ncees ntawm cov qauv database nrog qee lub peev xwm rov qab tau muab.

Technology-wise, libmdbx muaj ACID, muaj zog hloov serialization, thiab tsis-blocking nyeem nrog linear scaling hla CPU cores. Nws pib-compactification, tsis siv neeg database loj tswj, thiab ntau cov lus nug kwv yees tau txais kev txhawb nqa. Txij li thaum xyoo 2016, qhov project tau txais nyiaj los ntawm Positive Technologies thiab tau siv rau hauv nws cov khoom txij li xyoo 2017.

libmdbx muaj C ++ API, nrog rau kev txhawb nqa cov lus sib txuas rau Rust, Haskell, Python, NodeJS, Ruby, Go, thiab Nim.

Kev tsim kho tshiab loj, kev txhim kho thiab kev kho ntxiv ntxiv txij li cov xov xwm dhau los thaum Lub Kaum Hli 11:

  • C ++ API raug suav tias yog npaj rau kev siv.
  • Kev hloov tshiab ntawm GC cov ntaub ntawv thaum ua lag luam loj loj tau nrawm nrawm, tshwj xeeb tshaj yog thaum siv libmdbx hauv Ethereum ecosystem.
  • Cov kos npe sab hauv ntawm cov ntaub ntawv hom tau raug hloov los txhawb kev hloov kho tsis siv neeg, uas yog pob tshab rau cov neeg siv. Qhov no tso cai rau koj tshem tawm cov lus tsis tseeb-zoo hais txog kev noj nyiaj txiag database thaum cov ntawv qub dhau los ntawm lub tsev qiv ntawv siv los nyeem cov kev hloov pauv uas tau sau tseg los ntawm cov qauv tam sim no.
  • Ntxiv cov haujlwm mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() thiab mdbx_env_get_syncbytes(). Ntxiv kev txhawb nqa rau kev ua haujlwm MDBX_SET_UPPERBOUND.
  • Tag nrho cov lus ceeb toom thaum tsim nrog tag nrho cov kev txhawb nqa compilers hauv C ++ 11/14/17/20 hom tau raug tshem tawm. Kev sib raug zoo nrog cov cuab yeej cuab tam qub tau ua kom ntseeg tau: clang pib ntawm 3.9, gcc pib los ntawm 4.8, suav nrog kev sib dhos siv cdevtoolset-9 rau CentOS/RHEL 7.
  • Txhim kho qhov muaj peev xwm ntawm nplooj ntawv meta tsis sib haum tom qab hloov pauv mus rau nplooj ntawv tshwj xeeb uas siv mdbx_chk utility.
  • Kho qhov yuam kev MDBX_PROBLEM uas tsis xav txog yuav raug xa rov qab thaum sau cov nplooj ntawv qub qub.
  • Tsau rov qab MDBX_NOTFOUND nyob rau hauv rooj plaub ntawm qhov tsis sib xws thaum ua tiav qhov kev thov MDBX_GET_BOTH.
  • Kho qhov yuam kev muab tso ua ke ntawm Linux thaum tsis muaj cov ntaub ntawv header nrog cov lus piav qhia ntawm kev cuam tshuam nrog cov ntsiav.
  • Kho qhov teeb meem ntawm MDBX_SHRINK_ALLOWED tus chij sab hauv thiab MDBX_ACCEDE kev xaiv.
  • Ntau qhov kev kuaj xyuas tsis tsim nyog tau raug tshem tawm.
  • Txhim kho qhov kev cia siab rov qab los ntawm MDBX_RESULT_TRUE los ntawm mdbx_env_set_option() muaj nuj nqi.
  • Nyob rau hauv tag nrho, ntau tshaj 90 hloov tau ua rau 25 cov ntaub ntawv, ~ 1300 kab tau ntxiv, ~ 600 raug tshem tawm.

Tau qhov twg los: opennet.ru

Ntxiv ib saib