เบเบฒเบ™เบ›เปˆเบญเบ DBMS libmdbx 0.13.3 เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰

เบเบฒเบ™เบ›เปˆเบญเบเบ‚เบญเบ‡ libmdbx 0.13.3 (MDBX) เป„เบ”เป‰เบ–เบทเบเป€เบœเบตเบเปเบœเปˆ, เบ›เบฐเบ•เบดเบšเบฑเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเบฑเบ‡เบ•เบปเบงเบ„เบตเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบžเบฒเบšเบชเบนเบ‡. เบฅเบฐเบซเบฑเบ” libmdbx เบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0. เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ เปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ›เบฐเบˆเบธเบšเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš Russian Elbrus 2000. libmdbx เบชเบฐเป€เปœเบต API เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบณเบฅเบฑเบš C++, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบœเบนเป‰เบเบฐเบ•เบทเบฅเบทเบฅเบปเป‰เบ™เบเบฑเบšเบžเบฒเบชเบฒ Rust, Haskell, Python, NodeJS, Ruby, Go, Nim , Deno, Scala.

เปƒเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”, libmdbx เปเบกเปˆเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡ LMDB DBMS เปเบฅเบฐเบ”เบตเบเบงเปˆเบฒเบšเบฑเบ™เบžเบฐเบšเบธเบฅเบธเบ”เบ‚เบญเบ‡เบ•เบปเบ™เปƒเบ™เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš LMDB, libmdbx เป€เบ™เบฑเป‰เบ™เบซเบ™เบฑเบเบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡ API, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰. เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต, libmdbx เบชเบฐเบซเบ™เบญเบ‡ ACID, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ serialization เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, เปเบฅเบฐเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบชเบฑเป‰เบ™เบœเปˆเบฒเบ™เปเบเบ™ CPU. เบเบฒเบ™โ€‹เบเบฐโ€‹เบ•เบธเป‰เบ™โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ–เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบเบฒเบ™โ€‹เบชเบญเบšโ€‹เบ–เบฒเบกโ€‹เป„เบฅโ€‹เบเบฐโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เบชเบฒเบ‚เบฒ 0.13.x เป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบ„เบปเบ‡เบ—เบตเปˆ. เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบ‚เบฒ 0.14.x เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเป‰เบง.
  • เบŸเบฑเบ‡เบŠเบฑเบ™ mdbx_cursor_count_ex() เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ C API, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบฑเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ„เปˆเบฒเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบšเบเบฐเปเบˆเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.
  • เบงเบดเบ—เบตเบเบฒเบ™ mdbx::txn::make_broken() เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš mdbx_txn_break(), เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ C++ API.
  • utilities mdbx_copy, mdbx_drop, mdbx_dump, mdbx_load, mdbx_stat เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบ„เปเบฒเป€เบ•เบทเบญเบ™เปเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบˆเบฒเบ libmdbx.
  • เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹:
    • เป€เบกเบทเปˆเบญ GC profileing เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ (เบชเป‰เบฒเบ‡เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบ MDBX_ENABLE_PROFGC=ON), เป€เบงเบฅเบฒ CPU เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบฅเบงเบกเบฅเบฒเบเบŠเบทเปˆเปœเป‰เบฒเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเปเบฅเป‰เบง, i.e. เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ pnl_merge() เป€เบฎเบฑเบ”เบงเบฝเบ.
    • เปƒเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ„เปˆเบฒเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เบŠเบทเปˆเบˆเบฒเบ data.dups เป€เบ›เบฑเบ™ data.multi.
    • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเบเบฒเบงเบเบฐเปเบˆเบžเบฒเบเปƒเบ™ cursor_seek().
    • เบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ„เปˆเบฒเบ•เบปเบงเบˆเบดเบ‡เป‚เบ”เบเปƒเบŠเป‰ mdbx_env_set_option(MDBX_opt_txn_dp_limit), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เบตเบ”เบˆเปเบฒเบเบฑเบ”เบซเบ™เป‰เบฒเป€เบ›เบทเป‰เบญเบ™เบˆเบฐเบ–เบทเบเบ›เบฑเบšเปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบ™เบ‚เบฝเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰, เบญเบตเบ‡เบ•เบฒเบกเบˆเปเบฒเบ™เบงเบ™ RAM เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.
    • เปƒเบ™เป‚เบซเบกเบ” MDBX_NOSTICKYTHREADS, commit/abord of nested transactions from any thread/thread เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰.
    • เป€เบกเบทเปˆเบญเบžเบฐเบเบฒเบเบฒเบกเบ”เปเบฒเป€เบ™เบตเบ™เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™เบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” MDBX_WRITEMAP, เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” MDBX_INCOMPATIBLE เบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.
    • เปƒเบ™ C ++ API, เปƒเบ™ constructors / initializers เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป€เบฅเบ‚เบฒเบ„เบฐเบ™เบดเบ”เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบžเบฝเบ‡เปเบ•เปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
    • เบžเบฒเบเปƒเบ™ mdbx_env_set_geometry(), heuristics เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบฅเบ‚เบฒเบ„เบฐเบ™เบดเบ”เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰ "เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™" เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡.
  • เปเบเป‰เป„เบ‚:
    • เปเบเป‰เป„เบ‚เบเบฒเบ™เบ–เบปเบ”เบ–เบญเบเบ‚เบญเบ‡ mutex เบ—เบตเปˆเบšเปเปˆเบ›เบปเบ”เบฅเบฑเบญเบเป€เบกเบทเปˆเบญเบžเบฐเบเบฒเบเบฒเบกเบ›เบดเบ”เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบ dbi เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบ›เบดเบ”เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบถเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบกเบฑเบ™.
    • เปเบเป‰เป„เบ‚เบเบฒเบ™เบ–เบปเบ”เบ–เบญเบเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ•เบปเบงเบเบฐเบžเบดเบš nested/dupsort เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เปเบŠเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป‚เปเบ” MDBX_APPEND.
    • เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš boot_id เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ™เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธ LXC.
    • เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบ™เบญเปˆเบฒเบ™เปเบšเบšเบŠเป‰เบญเบ™เบเบฑเบ™. เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” MDBX_EINVAL เบ”เบฝเบงเบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบงเบฒเบ‡ nesting เบฎเบญเบ‡เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบญเปˆเบฒเบ™เบ‚เบฝเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
    • เบเบฒเบ™เบ–เบปเบ”เบ–เบญเบเบ‚เบญเบ‡ SIGSEGV เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบตเปˆเบขเบนเปˆเบชเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เป„เบŸเบฅเปŒ LCK เป„เบ”เป‰เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเบงเบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบชเบทเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™