ืฉื—ืจื•ืจ ืฉืœ DBMS ืžืฉื•ื‘ืฅ ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื libmdbx 0.11.3

ืกืคืจื™ื™ืช libmdbx 0.11.3 (MDBX) ืฉื•ื—ืจืจื” ืขื ื™ื™ืฉื•ื ืฉืœ ืžืกื“ ื ืชื•ื ื™ื ืงื•ืžืคืงื˜ื™ ืžืฉื•ื‘ืฅ ืžืคืชื—-ืขืจืš ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื. ื”ืงื•ื“ libmdbx ืžื•ืจืฉื” ืชื—ืช ื”ืจื™ืฉื™ื•ืŸ ื”ืฆื™ื‘ื•ืจื™ ืฉืœ OpenLDAP. ื›ืœ ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ื•ื”ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื”ื ื•ื›ื—ื™ื•ืช ื ืชืžื›ื•ืช, ื›ืžื• ื’ื Elbrus 2000 ื”ืจื•ืกื™. ื‘ืกื•ืฃ 2021, libmdbx ืžืฉืžืฉ ื›ื—ืœืง ืื—ื•ืจื™ ืฉืœ ืื—ืกื•ืŸ ื‘ืฉื ื™ ืœืงื•ื—ื•ืช ื”-Ethereum ื”ืžื”ื™ืจื™ื ื‘ื™ื•ืชืจ - Erigon ื•-"Shark" ื”ื—ื“ืฉ, ืืฉืจ, ืขืœ ืคื™ ื–ืžื™ืŸ, information, ื”ื•ื ืœืงื•ื— Ethereum ื‘ืขืœ ื”ื‘ื™ืฆื•ืขื™ื ื”ื’ื‘ื•ื”ื™ื ื‘ื™ื•ืชืจ.

ืžื‘ื—ื™ื ื” ื”ื™ืกื˜ื•ืจื™ืช, libmdbx ื”ื•ื ืขื™ื‘ื•ื“ ืžืขืžื™ืง ืฉืœ ื”-LMDB DBMS ื•ื”ื•ื ืขื“ื™ืฃ ืขืœ ื”ืื‘ ื”ืงื“ืžื•ืŸ ืฉืœื• ื‘ืืžื™ื ื•ืช, ืžืขืจืš ืชื›ื•ื ื•ืช ื•ื‘ื™ืฆื•ืขื™ื. ื‘ื”ืฉื•ื•ืื” ืœ-LMDB, libmdbx ืฉืžื” ื“ื’ืฉ ืจื‘ ืขืœ ืื™ื›ื•ืช ืงื•ื“, ื™ืฆื™ื‘ื•ืช API, ื‘ื“ื™ืงื•ืช ื•ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช. ืžืกื•ืคืง ื›ืœื™ ืขื–ืจ ืœื‘ื“ื™ืงืช ืชืงื™ื ื•ืช ืžื‘ื ื” ืžืกื“ ื”ื ืชื•ื ื™ื ืขื ื›ืžื” ื™ื›ื•ืœื•ืช ืฉื—ื–ื•ืจ.

ืžื‘ื—ื™ื ื” ื˜ื›ื ื•ืœื•ื’ื™ืช, libmdbx ืžืฆื™ืข ACID, ืกื™ื“ื•ืจื™ ืฉื™ื ื•ื™ื™ื ื—ื–ืงื™ื ื•ืงืจื™ืื•ืช ืœื ื—ื•ืกืžื•ืช ืขื ืงื ื” ืžื™ื“ื” ืœื™ื ื™ืืจื™ ืขืœ ืคื ื™ ืœื™ื‘ื•ืช ื”ืžืขื‘ื“. ื”ืงื•ืžืคืงืฆื™ื” ืื•ื˜ื•ืžื˜ื™ืช, ื ื™ื”ื•ืœ ื’ื•ื“ืœ ืžืกื“ ื ืชื•ื ื™ื ืื•ื˜ื•ืžื˜ื™ ื•ื”ืขืจื›ืช ืฉืื™ืœืชืช ื˜ื•ื•ื— ื ืชืžื›ื™ื. ืžืื– 2016, ื”ืคืจื•ื™ืงื˜ ืžืžื•ืžืŸ ืขืœ ื™ื“ื™ Positive Technologies ื•ืžืฉืžืฉ ื‘ืžื•ืฆืจื™ื” ืžืื– 2017.

libmdbx ืžืฆื™ืข C++ API, ื›ืžื• ื’ื ื›ืจื™ื›ื•ืช ืฉืคื” ื”ื ืชืžื›ื•ืช ืขืœ ื™ื“ื™ ื—ื•ื‘ื‘ื™ื ืขื‘ื•ืจ Rust, Haskell, Python, NodeJS, Ruby, Go ื•-Nim.

ื—ื™ื“ื•ืฉื™ื, ืฉื™ืคื•ืจื™ื ื•ืชื™ืงื•ื ื™ื ืžืจื›ื–ื™ื™ื ืฉื ื•ืกืคื• ืžืื– ื”ื—ื“ืฉื•ืช ื”ืงื•ื“ืžื•ืช ื‘-11 ื‘ืื•ืงื˜ื•ื‘ืจ:

  • ื”-API ืฉืœ C++ ื ื—ืฉื‘ ืžื•ื›ืŸ ืœืฉื™ืžื•ืฉ.
  • ื”ืขื“ื›ื•ืŸ ืฉืœ ื ืชื•ื ื™ GC ื‘ืขืช ื‘ื™ืฆื•ืข ืขืกืงืื•ืช ืขื ืง ื”ื•ืืฅ ืžืฉืžืขื•ืชื™ืช, ื•ื–ื” ื—ืฉื•ื‘ ื‘ืžื™ื•ื—ื“ ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-libmdbx ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ Ethereum.
  • ื”ื—ืชื™ืžื” ื”ืคื ื™ืžื™ืช ืฉืœ ืคื•ืจืžื˜ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉื•ื ืชื” ื›ื“ื™ ืœืชืžื•ืš ื‘ืขื“ื›ื•ืŸ ืื•ื˜ื•ืžื˜ื™, ืฉืงื•ืฃ ืœื—ืœื•ื˜ื™ืŸ ืœืžืฉืชืžืฉื™ื. ื–ื” ืžืืคืฉืจ ืœืš ืœื‘ื˜ืœ ื”ื•ื“ืขื•ืช ื—ื™ื•ื‘ื™ื•ืช ื›ื•ื–ื‘ื•ืช ืขืœ ื”ืฉื—ืชื” ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ื’ืจืกืื•ืช ืžื™ื•ืฉื ื•ืช ืฉืœ ื”ืกืคืจื™ื™ื” ืœืงืจื™ืืช ืขืกืงืื•ืช ืฉืชื•ืขื“ื• ืขืœ ื™ื“ื™ ื’ืจืกืื•ืช ื ื•ื›ื—ื™ื•ืช.
  • ื ื•ืกืคื• ืคื•ื ืงืฆื™ื•ืช mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() ื•-mdbx_env_get_syncbytes(). ื ื•ืกืคื” ืชืžื™ื›ื” ืœืคืขื•ืœืช MDBX_SET_UPPERBOUND.
  • ื›ืœ ื”ืื–ื”ืจื•ืช ื‘ืขืช ื‘ื ื™ื™ื” ืขื ื›ืœ ื”ืžื”ื“ืจื™ื ื”ื ืชืžื›ื™ื ื‘ืžืฆื‘ื™ C++ 11/14/17/20 ื‘ื•ื˜ืœื•. ืžื•ื‘ื˜ื—ืช ืชืื™ืžื•ืช ืขื ืžื”ื“ืจื™ื ืžื“ื•ืจ ืงื•ื“ื: ืฆืœืฆื•ืœ ื”ื—ืœ ืž-3.9, gcc ื”ื—ืœ ืž-4.8, ื›ื•ืœืœ ื”ืจื›ื‘ื” ื‘ืืžืฆืขื•ืช cdevtoolset-9 ืขื‘ื•ืจ CentOS/RHEL 7.
  • ืชื™ืงืŸ ืืช ื”ืืคืฉืจื•ืช ืฉืœ ื”ืชื ื’ืฉื•ืช ืขืžื•ื“ ืžื˜ื ืœืื—ืจ ืžืขื‘ืจ ื™ื“ื ื™ ืœื“ืฃ ืžื˜ื ืกืคืฆื™ืคื™ ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช mdbx_chk.
  • ืชื•ืงื ื” ืฉื’ื™ืื” ื‘ืœืชื™ ืฆืคื•ื™ื” ืฉืœ MDBX_PROBLEM ืฉื”ื•ื—ื–ืจื” ื‘ืขืช ื”ื—ืœืคืช ื“ืคื™ ืžื˜ื ืžื“ื•ืจ ืงื•ื“ื.
  • ืชื•ืงืŸ ื”ื—ื–ืจืช MDBX_NOTFOUND ื‘ืžืงืจื” ืฉืœ ื”ืชืืžื” ืœื ืžื“ื•ื™ืงืช ื‘ืขืช ืขื™ื‘ื•ื“ ื‘ืงืฉืช MDBX_GET_BOTH.
  • ืชื•ืงื ื” ืฉื’ื™ืืช ืงื•ืžืคื™ืœืฆื™ื” ื‘ืœื™ื ื•ืงืก ื‘ื”ื™ืขื“ืจ ืงื‘ืฆื™ ื›ื•ืชืจืช ืขื ืชื™ืื•ืจื™ื ืฉืœ ืžืžืฉืงื™ื ืขื ื”ืœื™ื‘ื”.
  • ืชื•ืงืŸ ื”ืชื ื’ืฉื•ืช ื‘ื™ืŸ ื”ื“ื’ืœ ื”ืคื ื™ืžื™ MDBX_SHRINK_ALLOWED ืœื‘ื™ืŸ ื”ืืคืฉืจื•ืช MDBX_ACCEDE.
  • ื‘ื•ื˜ืœื• ื›ืžื” ื‘ื“ื™ืงื•ืช ื˜ืขื ื” ืžื™ื•ืชืจื•ืช.
  • ืชื•ืงื ื” ื”ื—ื–ืจื” ื‘ืœืชื™ ืฆืคื•ื™ื” ืฉืœ MDBX_RESULT_TRUE ืžืคื•ื ืงืฆื™ื™ืช mdbx_env_set_option() .
  • ื‘ืกืš ื”ื›ืœ, ื‘ื•ืฆืขื• ื™ื•ืชืจ ืž-90 ืฉื™ื ื•ื™ื™ื ื‘-25 ืงื‘ืฆื™ื, ื ื•ืกืคื• ~1300 ืฉื•ืจื•ืช, ~600 ื ืžื—ืงื•.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”