Tso tawm ntawm compact embedded DBMS libmdbx 0.9.1

Tso tawm tsev qiv ntawv version 0.9.1 libmdx (MDBX) kev ua haujlwm ntawm kev ua haujlwm siab, kev cog lus tsim cov ntaub ntawv tseem ceeb-tus nqi. Lub libmdbx code yog muab faib raws li daim ntawv tso cai OpenLDAP Public License.

Cov qauv tam sim no yog kev sib haum xeeb ntawm lub hom phiaj tso tawm lub sijhawm ntev ruaj khov version 1.0 nrog kev txhawb nqa C ++ tag nrho thiab qhov tsis txaus siab los ncua kev tso tawm vim qhov tsis tau npaj rau khov C ++ API tshiab. Qhov kev tso tawm no yog qhov tshwm sim ntawm 9 lub hlis ntawm kev ua haujlwm txhawm rau txhim kho lub tsev qiv ntawv thiab txhim kho nws cov kev siv tau, thiab tseem suav nrog cov ntawv ua ntej. C++ API.

Lub tsev qiv ntawv libmdbx tsis yog "khob" xwb, tab sis ib tug radically redesigned xeeb leej xeeb ntxwv LMDB - Kev lag luam kos DBMS ntawm chav kawm "tus nqi tseem ceeb" raws li tsob ntoo B+ tsis muaj proactive log, uas tso cai rau ntau cov txheej txheem los ua haujlwm sib tw thiab ua tau zoo nrog cov ntaub ntawv hauv zos sib koom (tsis yog network) yam tsis muaj txheej txheem neeg rau zaub mov. libmdbx hauv paus nthuav muaj peev xwm ntawm nws cov poj koob yawm txwv, thaum tib lub sijhawm tshem tawm lossis txo qhov tsis zoo. Nyob rau tib lub sijhawm, raws li cov neeg tsim tawm, libmdbx yog me ntsis sai dua thiab txhim khu kev ntseeg ntau dua li LMDB.

libmdbx qhia acid, nruj serialization ntawm cov kev hloov pauv thiab tsis-thaiv kev nyeem ntawv nrog linear scaling hla CPU cores. Cov txiaj ntsig kev ntsuas kev ua tau zoo (xa mus txuas ntxiv nyeem / tshawb nrhiav hauv 1-2-4-8 xov ntawm CPU i7-4600U nrog 2 lub cev cores hauv 4-xov HyperThread hom):

Tso tawm ntawm compact embedded DBMS libmdbx 0.9.1

Qhov sib txawv tseem ceeb tshaj plaws ntawm MDBX thiab LMDB:

  • Hauv paus, kev saib xyuas ntau dua yog them rau cov lej zoo, API qhov sib xws, kev sim thiab kev kuaj tsis siv neeg.
  • Kev tswj hwm ntau dua thaum lub sijhawm ua haujlwm, los ntawm kev kuaj xyuas parameter mus rau kev tshawb xyuas sab hauv ntawm cov qauv database.
  • Auto-compactification thiab tsis siv neeg database loj tswj.
  • Ib hom ntawv database rau 32-ntsis thiab 64-ntsis sib dhos.
  • Kev kwv yees ntawm cov qauv ntim los ntawm ntau yam (ntau cov lus nug kwv yees).
  • Kev them nyiaj yug rau ob zaug ntev npaum li cov yuam sij thiab cov neeg siv xaiv cov ntaub ntawv nplooj ntawv loj.
  • Ib qho txiaj ntsig rau kev tshuaj xyuas qhov ncaj ncees ntawm cov qauv database nrog qee qhov muaj peev xwm rov qab los.

Main innovation thiab txhim kho tom qab xov xwm dhau los nrog kev taw qhia ntawm version 0.5 thaum Lub Ib Hlis 2020:

  • Lub kaw lus qhib tau tsim rau kev txhawb nqa sai thiab cov lus teb rau cov lus nug. Telegram pawg.
  • Ntau tshaj li kaum ob qhov yuam kev thiab qhov tsis txaus tau raug tshem tawm (saib. hloov log).
  • Ntau qhov typos thiab kev sau yuam kev tau raug kho, thiab ntau yam kev kho kom zoo nkauj tau ua tiav.
  • Cov xwm txheej sim tau nthuav dav.
  • Kev them nyiaj yug rau iOS, Android, buildroot, musl, uClibc, NWS 1 ΠΈ caw.
  • C++ API saib ua ntej tso tawm hauv ib header file.
  • Built-in cov ntaub ntawv hauv Doxygen hom thiab tsis siv neeg tiam Cov ntaub ntawv online.
  • Tsis siv neeg tiam ntawm archives nrog amalgamated cov ntawv nyeem yog muab.
  • Ntxiv kev txhawb nqa rau kev npaj kev lag luam thiab tus cursors, cov neeg siv cov ntsiab lus rau kev hloov pauv thiab tus cursors.
  • Cov txheej txheem ntxiv tau raug siv los tswj kev ncaj ncees ntawm kev xa tawm hauv B + tsob ntoo MVCC snapshots.
  • Ntxiv kev txhawb nqa rau kev tshuaj xyuas MVCC snapshot ntawm cov ntaub ntawv, nkag mus tau los ntawm cov nplooj ntawv meta nrog lub peev xwm hloov pauv kom rov zoo.
  • Siv kev txhawb nqa rov qhib cov ntaub ntawv los ntawm ib txheej txheem rau kev sim, thiab lwm yam.
  • Ua tiav kev ua haujlwm tsis siv neeg ntawm MDBX_NOSUBDIR kev xaiv thaum qhib cov ntaub ntawv.
  • Ntxiv cov haujlwm rau kev tsim cov lej suav los ntawm cov ntsiab lus ntab ntab thiab JavaScript "universal" tus lej.
  • Nyob rau hauv tag nrho, 430 kev hloov pauv tau cuam tshuam rau 93 cov ntaub ntawv, ntau dua 25 txhiab kab tau ntxiv, ntau dua 8.5 txhiab kab raug tshem tawm.

Kev txhim kho tom qab ntawm libmdbx yuav tsom mus rau qhov kawg C ++ API, ntxiv kev ruaj khov ntawm lub hauv paus code, txhim kho kev siv tau ntawm lub tsev qiv ntawv, thiab ntim khoom rau Linux nrov. Ntawm cov kev txhim kho tau pom zoo, nws tsim nyog sau cia kev txhawb nqa rau cov yuam sij hauv hom MessagePack.

Tau qhov twg los: opennet.ru

Ntxiv ib saib