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

ืœืื—ืจ ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื ืฉืœ ืคื™ืชื•ื—, libmdbx 0.10.0 (MDBX) ืฉื•ื—ืจืจ, ืชื•ืš ื”ื˜ืžืขืช ืžืกื“ ื ืชื•ื ื™ื ืžืฉื•ื‘ืฅ ืžืคืชื—-ืขืจืš ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื•ืงื•ืžืคืงื˜ื™ื™ื. ื”ืงื•ื“ libmdbx ืžื•ืจืฉื” ืชื—ืช ื”ืจื™ืฉื™ื•ืŸ ื”ืฆื™ื‘ื•ืจื™ ืฉืœ OpenLDAP. libmdbx ื”ื•ื ืขื™ื‘ื•ื“ ืžืขืžื™ืง ืฉืœ ื”-LMDB DBMS ื•ืœืคื™ ื”ืžืคืชื—ื™ื, ื”ื•ื ืขื“ื™ืฃ ืขืœ ื”ืื‘ ื”ืงื“ืžื•ืŸ ืฉืœื• ื‘ืืžื™ื ื•ืช, ื‘ื˜ื•ื•ื— ื”ื™ื›ื•ืœื•ืช ื•ื”ื‘ื™ืฆื•ืขื™ื. ื ืืžืจ ื›ื™ libmdbx ืžื”ื™ืจ ื‘-20% ืž-LMDB ื‘ืชืจื—ื™ืฉื™ CRUD ื•ืขื“ 30% ืžื”ื™ืจ ื™ื•ืชืจ ืื ื”ื‘ืงืจื•ืช ื”ืคื ื™ืžื™ื•ืช ืžื•ืฉื‘ืชื•ืช ื‘ืขืช ื‘ื ื™ื™ืช libmdbx ืœืจืžื” ื”ื“ื•ืžื” ืœ-LMDB.

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

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

  • ื›ืจื™ื›ืช ืจื•ื‘ื™ ืžืืช Mahlon E. Smith ื•ื’ืจืกืช ื ื™ืกื™ื•ืŸ ืฉืœ ื›ืจื™ื›ื•ืช Python ืžืืช ื ื•ืืœ ืงื•ื ืฅ ื–ืžื™ื ื•ืช, ื•ื›ืจื™ื›ื•ืช GoLang ืžืืช ืืœื›ืกื™ื™ ืฉืจื•ื‘ ืขื•ื“ื›ื ื•.
  • ืขื‘ื•ืจ ืžืฆื‘ "MDBX_WRITEMAP", ื›ืืฉืจ ื ืชื•ื ื™ ืžืกื“ ื”ื ืชื•ื ื™ื ืžืฉืชื ื™ื ื™ืฉื™ืจื•ืช ื‘-RAM, ืžื™ื•ืฉืžืช "ื”ื–ืœื™ื’ื” ืฉืงื•ืคื”" ืฉืœ ื“ืคื™ ืžืกื“ ื ืชื•ื ื™ื ืฉื”ืฉืชื ื• ืœื“ื™ืกืง. ื›ืขืช, ืœืื—ืจ ื”ืฉืœืžืช ื›ืœ ืคืขื•ืœื”, ื“ืคื™ื ื›ืืœื” ืžื•ื›ื ื™ื ืžื™ื™ื“ื™ืช ืœื—ืœื•ื˜ื™ืŸ ืœื›ืชื™ื‘ื” ืœื“ื™ืกืง ื•ืงืจื ืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื™ื›ื•ืœื” ืœืฉื˜ื•ืฃ ื‘ืื•ืคืŸ ืขืฆืžืื™ ืืช ื”ื“ืคื™ื ืฉื”ืฉืชื ื• ืœื“ื™ืกืง, ื•ื‘ื™ืฆื•ืข ืขืกืงื” ืœื ื™ื“ืจื•ืฉ ืฉื™ื ื•ื™ ืฉืœื”ื. ื›ืชื•ืฆืื” ืžื›ืš, ื‘ืชืจื—ื™ืฉื™ื ืขืžื•ืกื™ื ืขื ื–ื™ื›ืจื•ืŸ RAM ืœื ืžืกืคื™ืง, ื ื™ืชืŸ ืœื”ืคื—ื™ืช ืืช ื ืคื— ืคืขื•ืœื•ืช ื”ื“ื™ืกืง ืขื“ ืคื™ 2.
  • ืคื™ื ื•ื™ ืžื™ื•ืฉื ืฉืœ ืขื•ืชืงื™ ืฆืœ ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื–ืžืŸ ืจื‘ ืฉืœ ื“ืคื™ื ืฉื”ืฉืชื ื•, ืขื ื”ืขื“ืคื” ืœืคื™ื ื•ื™ ืฉืœ ื“ืคื™ื ื‘ืขืœื™ ืขืจื›ื™ื ื’ื“ื•ืœื™ื/ืืจื•ื›ื™ื, ืฉื‘ืจื•ื‘ื ื”ืžื•ื—ืœื˜ ืฉืœ ื”ืชืจื—ื™ืฉื™ื ืžืฉืชื ื™ื ืจืง ืคืขื ืื—ืช ื‘ื›ืœ ืขืกืงื”. ื”ืชื•ืฆืื” ื”ื™ื ืชืขื‘ื•ืจืช ื“ื™ืกืง ืžื•ืคื—ืชืช ื•ื‘ื™ืฆื•ืขื™ื ืžืฉื•ืคืจื™ื ื‘ืชืจื—ื™ืฉื™ื ืขื ืขืกืงืื•ืช ื’ื“ื•ืœื•ืช ืžืื•ื“.
  • ืžื™ื•ืฉื ืžืฆื‘ "ื—ื›ื" ืœื”ืคืจื“ืช ื“ืคื™ื ื‘ืขืช ื”ื›ื ืกืช ืžืคืชื—ื•ืช. ื›ืขืช, ื‘ืขืช ื”ื›ื ืกืช ืจืฆืคื™ื ืžืกื•ื“ืจื™ื, ื”ื“ืคื™ื ืžืชืžืœืื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืœื—ืœื•ื˜ื™ืŸ, ื•ื‘ืžืงืจื™ื ืื—ืจื™ื, ื”ืขืฅ ืžืื•ื–ืŸ ื‘ืฆื•ืจื” ืžื™ื˜ื‘ื™ืช ื™ื•ืชืจ. ื›ืชื•ืฆืื” ืžื›ืš, ื‘ืžืžื•ืฆืข, ื“ืคื™ ืžืกื“ ื”ื ืชื•ื ื™ื ืžืชืžืœืื™ื ื‘ืฆื•ืจื” ืื•ืคื˜ื™ืžืœื™ืช ื™ื•ืชืจ ื•ืขืฅ ื”-B ืžืื•ื–ืŸ ื™ื•ืชืจ, ืžื” ืฉืžืฉืคื™ืข ืœื˜ื•ื‘ื” ืขืœ ื”ื‘ื™ืฆื•ืขื™ื.
  • ื ื•ืกืคื• ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืฉืœ ืคืขื•ืœื•ืช ืขื ื“ืคื™ื, ื”ืžืืคืฉืจื•ืช ืœื”ืขืจื™ืš ื‘ืžื“ื•ื™ืง ืืช ืขืœื•ืช ืฉื™ื ื•ื™ ื”ืคืขื•ืœื•ืช ืขื ืžืกื“ ื”ื ืชื•ื ื™ื.
  • ื™ื•ืชืจ ืžืชืจื™ืกืจ ื‘ืื’ื™ื ื•ื‘ืื’ื™ื ืชื•ืงื ื•, ื›ื•ืœืœ: ื‘ืขื™ื•ืช ื‘ื‘ื ื™ื™ื” ื‘ืืžืฆืขื•ืช MinGW, ืฉื™ืžื•ืฉ ื‘-`std::filesystem::path` ื‘-iOS <= 13.0, ื‘ื ื™ื™ื” ื”ืžื™ื•ืขื“ืช ืœื’ืจืกืื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ ืฉืœ Windows ื•ื›ื•'.
  • ื‘ืกืš ื”ื›ืœ, ื‘ื•ืฆืขื• ื™ื•ืชืจ ืž-200 ืฉื™ื ื•ื™ื™ื ื‘-66 ืงื‘ืฆื™ื, ื ื•ืกืคื• ~6500 ืฉื•ืจื•ืช, ~4500 ื ืžื—ืงื•.

ื‘ื ืคืจื“, ื‘ืจืฆื•ื ื™ ืœืฆื™ื™ืŸ ืืช ื”ื‘ื—ื™ืจื” ื‘ืคืจื•ื™ืงื˜ Turbo-Geth (ืžื–ืœื’ ื˜ื•ืจื‘ื• ืฉืœ Go-Ethereum) libmdbx ื›ื’ื‘ ืื—ืกื•ืŸ ื—ื“ืฉ, ื•ื’ื ืœื”ื•ื“ื•ืช ืœืฆื•ื•ืช ื”ืคืจื•ื™ืงื˜ (ื‘ืžื™ื•ื—ื“ ืืœื›ืกื™ื™ ืฉืจื•ื‘, ืืจื˜ื™ื•ื ื•ื•ืจื•ื˜ื ื™ืงื•ื‘ ื•ืืœื›ืกื™ื™ ืื—ื•ื ื•ื‘) ืขืœ ืฉืœื”ื. ืขื–ืจื” ืจื‘ื” ื‘ื‘ื“ื™ืงื” ื‘ืชืจื—ื™ืฉื™ ืฉื™ืžื•ืฉ ืงื™ืฆื•ื ื™ื™ื. ื‘ืคืจื˜, ื”ืชื’ืœื” ื•ื‘ื•ื˜ืœ ืคื’ื ื‘ื‘ืงืจืช ื”ืงืจื™ืื” ืงื“ื™ืžื”/ืžื˜ืžื•ืŸ, ืžื” ืฉื”ื•ื‘ื™ืœ ืœื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื ื‘ืชืจื—ื™ืฉื™ื ืงืฉื™ื ืœืฉื—ื–ื•ืจ ืขื ืžืกื“ื™ ื ืชื•ื ื™ื ื’ื“ื•ืœื™ื.

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

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