Tso tawm DBMS libmdbx 0.11.7. Txav kev txhim kho mus rau GitFlic Tom qab kaw ntawm GitHub

Lub tsev qiv ntawv libmdbx 0.11.7 (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 Elbrus 2000.

Qhov kev tso tawm yog qhov tseem ceeb rau kev tsiv teb tsaws ntawm txoj haujlwm mus rau GitFlic qhov kev pabcuam tom qab lub Plaub Hlis 15, 2022, GitHub cov thawj coj, tsis muaj kev ceeb toom lossis kev piav qhia, tshem tawm libmdbx nrog rau ntau tus tswv ntawm lwm cov haujlwm, thaum tib lub sijhawm thaiv kev nkag mus rau ntau tus tsim tawm cuam tshuam nrog tuam txhab uas muag raug rau US sanctions. Los ntawm cov neeg siv qhov kev xav, txhua nplooj ntawv, qhov chaw cia khoom thiab rab rawg ntawm qhov project tam sim ntawd tig mus rau hauv 404 nplooj ntawv, tsis muaj kev sib txuas lus thiab nrhiav cov laj thawj.

Hmoov tsis zoo, yuav luag txhua qhov teeb meem, uas muaj ntau cov lus nug nrog cov lus teb ntxaws, nrog rau ntau qhov kev sib tham, tau ploj lawm. Qhov poob ntawm cov ntaub ntawv no tsuas yog lub hom phiaj kev puas tsuaj uas GitHub tswj hwm los ua phem rau qhov project. Cov ntawv luam ib nrab ntawm cov kev sib tham tseem muaj nyob rau ntawm archive.org.

Qhov poob ntawm qhov teeb meem ntawm CI tsim thiab kev tsim kho vaj tse (muaj rau OpenSource tej yaam num pub dawb) yuam kom peb ua kev kho dua tshiab, kev sib koom ua ke thiab tshem tawm cov nuj nqis me me. Tam sim no CI tau rov qab los yuav luag tib yam, tshwj tsis yog kev tsim thiab khiav kev sim rau tag nrho BSD thiab Solaris variants. Feem ntau, tom qab qhov kev nqis tes ua, GitHub tsis tau txais kev qhia meej lossis cov ntawv ceeb toom, sib nrug los ntawm kev ceeb toom txog kev xav tau kev them nyiaj thiab sim sau nyiaj.

Txij li cov xov xwm kawg txog kev tso tawm libmdbx v0.11.3, ntxiv rau kev rov qab los ntawm GitHub ua, nws tsim nyog sau cia cov kev txhim kho thiab kho hauv qab no:

  • Ntxiv ib qho kev daws teeb meem rau kev kuaj pom qhov tsis sib haum xeeb / qhov tsis zoo hauv nplooj ntawv ua ke thiab tsis muaj cache hauv Linux ntsiav. Hauv cov kab ke uas cov nplooj ntawv thiab tsis muaj caches sib xyaw ua ke tiag tiag, tsis muaj qhov taw qhia hauv cov ntsiav nkim nco rau ob daim ntawv theej ntawm cov ntaub ntawv thaum sau rau cov ntaub ntawv uas twb tau teeb tsa rau hauv lub cim xeeb. Yog li ntawd, cov ntaub ntawv raug sau yuav pom los ntawm kev cim xeeb ua ntej sau () system hu ua tiav, txawm tias cov ntaub ntawv tseem tsis tau sau rau disk.

    Feem ntau, lwm yam kev coj cwj pwm tsis yog qhov tsim nyog, vim hais tias nrog kev sib koom ua ke, koj tseem yuav tau txais cov xauv rau nplooj ntawv, luam cov ntaub ntawv, lossis kho PTE. Yog li ntawd, txoj cai tsis sib haum xeeb tau siv txij li xyoo 1989, thaum lub koom haum tsis sib haum xeeb tau tshwm sim hauv SRV4. Yog li ntawd, txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau nws, koj yuav tsum nrhiav cov kev sib txawv txawv txawv hauv qhov loaded libmdbx exploitation scenarios yuav tsum tau ua haujlwm ntau. Ua ntej yuav rov tsim dua qhov teeb meem, tom qab ntawd txhawm rau txheeb xyuas qhov kev xav thiab sim txhim kho.

    Tam sim no peb tuaj yeem ntseeg tau hais tias qhov teeb meem tau txheeb xyuas tau ntseeg tau, thaj chaw thiab kev ntseeg tau raug tshem tawm, txawm tias qhov nyuaj thiab qhov tshwj xeeb ntawm qhov kev tsim tawm. Tsis tas li ntawd, kev ua haujlwm ntawm lub tshuab bypass tau lees paub los ntawm ib qho ntawm cov neeg tsim khoom ntawm Erigon (Ethereum); nyob rau hauv nws cov ntaub ntawv, ntawm qhov kev debug tsim, kev tiv thaiv tau tshwm sim los ntawm kev rov qab los vim yog qhov tsis tsim nyog kuaj xyuas.

    Nws yuav tsum raug sau tseg tias nyob rau hauv cov ntsiab lus ntawm kev siv dav ntawm libmdbx hauv cov haujlwm tsim khoom, kev ua haujlwm txhim khu kev qha yog qhov tseem ceeb tshaj qhov kev txheeb xyuas seb nws puas yog kab laum lossis ib qho tshwj xeeb thiab seb qhov kev sib koom ua ke no puas tuaj yeem tso siab rau, tsawg dua kev tshawb nrhiav. ua rau incoherence nyob rau hauv lub Linux kernel. Yog li ntawd, ntawm no peb tab tom tham txog kev kho qhov teeb meem uas yuav cuam tshuam rau cov neeg siv.

  • Qhov kev hloov pauv ntawm EXDEV (Cross-device link) yuam kev thaum luam cov ntaub ntawv kub tsis muaj kev sib cog lus rau lwm cov ntaub ntawv, ob qho tib si los ntawm API thiab nrog rau mdbx_copy utility, tau raug tshem tawm.
  • Kris Zyp siv libmdbx kev txhawb nqa hauv Deno. Kai Wetlesen tsim RPM ntim rau Fedora. David BouyssiΓ© tau siv txoj hlua khi rau Scala.
  • Tsau ua cov nqi teev tseg los ntawm MDBX_opt_rp_augment_limit kev xaiv thaum ua cov kev lag luam loj hauv cov ntaub ntawv loj. Yav dhau los, vim muaj qhov yuam kev, kev ua tsis tsim nyog tuaj yeem ua tau, uas qee zaum cuam tshuam kev ua haujlwm hauv Ethereum kev siv (Erigon / Akula / Silkworm) thiab Binance Chain cov haujlwm.
  • Ntau cov kab mob tau raug kho, suav nrog hauv C ++ API. Txhim kho ntau yam teeb meem hauv qhov tsis tshua muaj thiab txawv txawv. Ib daim ntawv teev tag nrho cov kev txhim kho tseem ceeb muaj nyob hauv ChangeLog.
  • Tag nrho ntawm 185 kev hloov pauv tau ua rau 89 cov ntaub ntawv, β‰ˆ3300 kab tau ntxiv, β‰ˆ4100 raug tshem tawm. Ntau dua tau raug tshem tawm feem ntau vim yog kev ntxuav cov ntaub ntawv thev naus laus zis uas tsis muaj txiaj ntsig cuam tshuam nrog GitHub thiab cov kev pabcuam nyob.

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 qhov tsim C ++ API, nrog rau kev txhawb nqa kev txhawb nqa rau cov lus Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.

Tau qhov twg los: opennet.ru

Ntxiv ib saib