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

เบเบฒเบ™เบ›เปˆเบญเบเบ‚เบญเบ‡ libmdbx 0.13.2 (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. เบเบฒเบ™โ€‹เบเบฐโ€‹เบ•เบธเป‰เบ™โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ–เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบเบฒเบ™โ€‹เบชเบญเบšโ€‹เบ–เบฒเบกโ€‹เป„เบฅโ€‹เบเบฐโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

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

  • เป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ GC เป€เบกเบทเปˆเบญเบเบฑเบšเบ„เบทเบ™ / เบงเบฒเบ‡เบฅเบฒเบเบŠเบทเปˆเบซเบ™เป‰เบฒเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™. เป‚เบซเบกเบ”เบเบฒเบ™เบ•เบดเบŠเบปเบกเบ—เบตเปˆเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡ เปเบฅเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปเบฅเป‰เบง. เบเบฒเบ™เบฅเบงเบกเบเบฑเบ™เบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ™เบตเป‰ (เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™ retries เป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡), เปเบฅเบฐเบเบฑเบ‡เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆ "looping" เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ (เบเบฑเบšเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” MDBX_PROBLEM) เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบซเบฒเบเบฒเบ.
  • CMake build scripts เบ›เบฐเบเบญเบšเบกเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C23.
  • เป€เบžเบตเปˆเบก T-macro เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ char/wchar_t เบ—เบตเปˆเบˆเบฑเบšเบ„เบนเปˆเปเบฅเป‰เบง.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบ™เบ‚เบฝเบ™เปเบšเบšเบŠเป‰เบญเบ™เบเบฑเบ™เปƒเบชเปˆ C++ API.
  • เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบชเบฐเบšเบฑเบšเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบชเบฐเบšเบฑเบš semantic (โ€œSemantic Versioning 2โ€) เป„เบ”เป‰เบ–เบทเบเบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเป‰เบงเปเบฅเบฐเบเบฒเบ™เบชเบปเปˆเบ‡เบญเบญเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบšเบฑเบšเป„เบ›เบซเบฒ VERSION.json เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™.
  • เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเบทเบšเบžเบฑเบ™, เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก SOURCE_DATE_EPOCH. เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš MDBX_BUILD_TIMESTAMP เบˆเบฐเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰ เปเบฅเบฐเบ•เบปเบงเปเบ›เบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒ.
  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบฐเบšเบธเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ libmdbx เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ MDBX_BUILD_METADATA. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เบทเบเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ›เบฑเบ™เบ„เปˆเบฒ mdbx_build.metadata, เปเบฅเบฐเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบกเบฑเบ™เบเบฑเบ‡เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบžเบฑเบเป€เบเบฑเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†.
  • เป€เบžเบตเปˆเบกเบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบกเบฒเบˆเบฒเบ API. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ MDBX_LOG_DEBUG (เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบฅเบปเบš MDBX_NOTFOUND) เบซเบผเบท MDBX_LOG_TRACE (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš MDBX_RESULT_TRUE).
  • เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹:
    • เป€เบžเบตเปˆเบก mdbx::cursor::get_multiple_samelength() เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเบ›เปˆเบฝเบ™เบŠเบทเปˆ mdbx::txn::put_multiple_samelength().
    • เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ C++ API, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™ MDBX_GET_MULTIPLE เบ•เบญเบ™เบ™เบตเป‰เบเบฑเบ‡เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ™เบฑเป‰เบ™เป€เบญเบ‡.
    • เบชเปเบฒเบฅเบฑเบš mdbx::env::เบ‚เบฐเปœเบฒเบ”เป€เบฅเบ‚เบฒเบ„เบฐเบ™เบดเบ”เบ„เบปเบ‡เบ—เบตเปˆ, เบ›เบฐเป€เบžเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เบˆเบฒเบ unsigned size_t เป€เบ›เบฑเบ™ intptr_t.
    • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ ntdll เปเบ—เบ™ CRT เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ C++ API เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™.
    • เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ / เบเบปเบเป€เบฅเบตเบเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบš mdbx_txn_commit() เป„เบ”เป‰เบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบ. เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒ API เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป‚เบ”เบเปƒเบŠเป‰ mdbx_txn_abort(), เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ mdbx_txn_commit() เบเบฑเบšเบ„เบทเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบฎเบปเปˆเบงเป„เบซเบผเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบเบฐเบ•เบธเป‰เบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบžเบถเบ”เบ•เบดเบเปเบฒ.
    • เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ __deprecated_enum macro เบ–เป‰เบฒเบ–เบทเบเบเปเบฒเบ™เบปเบ”.
    • เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ”เป‰เบงเบ CMake, เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฒเบชเบฒ C เบ”เบฝเบงเบ™เบตเป‰เบ–เบทเบเป€เบฅเบทเบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ CMAKE_C_STANDARD.

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

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