libmdbx 0.13.2 (MDBX) නිකුතුව ප්රකාශයට පත් කර ඇත, ඉහළ කාර්ය සාධනයක් සහිත සංයුක්ත කාවැද්දූ යතුරු-අගය දත්ත ගබඩාවක් ක්රියාත්මක කරයි. Libmdbx කේතය Apache 2.0 බලපත්රය යටතේ බෙදා හැරේ. දැනට පවතින සියලුම මෙහෙයුම් පද්ධති සහ ගෘහනිර්මාණ සඳහා සහය දක්වයි, මෙන්ම රුසියානු Elbrus 2000. libmdbx විසින් C++ සඳහා සංවර්ධිත API එකක් මෙන්ම Rust, Haskell, Python, NodeJS, Ruby, Go, Nim යන භාෂාවලට උද්යෝගිමත්-සහාය දක්වන බන්ධන ඉදිරිපත් කරයි. , ඩෙනෝ, ස්කලා.
ඓතිහාසික වශයෙන්, libmdbx යනු LMDB DBMS හි ගැඹුරු ප්රතිනිර්මාණයක් වන අතර විශ්වසනීයත්වය, විශේෂාංග කට්ටලය සහ කාර්ය සාධනය අතින් එහි මුතුන් මිත්තන්ට වඩා උසස් වේ. LMDB හා සසඳන විට, libmdbx කේතයේ ගුණාත්මකභාවය, API ස්ථායිතාව, පරීක්ෂා කිරීම සහ ස්වයංක්රීය චෙක්පත් කෙරෙහි වැඩි අවධානයක් යොමු කරයි. සමහර ප්රතිසාධන හැකියාවන් සහිත දත්ත සමුදා ව්යුහයේ අඛණ්ඩතාව පරීක්ෂා කිරීම සඳහා උපයෝගීතාවයක් සපයනු ලැබේ. තාක්ෂණය අනුව, libmdbx විසින් ACID, ප්රබල වෙනස්වීම් අනුක්රමිකකරණය සහ CPU මධ්ය හරහා රේඛීය පරිමාණය සමඟ කියවීම් අවහිර නොකිරීම ලබා දෙයි. ස්වයංක්රීය සංයුක්ත කිරීම, ස්වයංක්රීය දත්ත සමුදා ප්රමාණය කළමනාකරණය සහ පරාස විමසුම් ඇස්තමේන්තුව සඳහා සහය දක්වයි.
ප්රධාන වෙනස්කම්:
- සංකීර්ණ අවස්ථා වලදී පිටු ලැයිස්තු ආපසු යැවීමේදී/දමමින් GC යාවත්කාලීන කිරීම වේගවත් කරන්න. කලින් අබල කළ පර්යේෂණාත්මක නිවැරදි කිරීමේ ප්රතිපෝෂණ මාදිලිය වැඩිදියුණු කර සක්රිය කර ඇත. මෙය මූලික වශයෙන් අභිසාරීතාව වැඩි දියුණු කර ඇත (නැවත උත්සාහ කිරීම් ගණන අඩු කර ඇත), සහ දුර්ලභ විශේෂිත තත්වයන් තුළ ගනුදෙනු සිදු කිරීමේදී (MDBX_PROBLEM දෝෂය නැවත පැමිණීමත් සමඟ) "ලූප" වීමට තුඩු දෙන දෝෂයක් ඉවත් කර ඇත.
- CMake ගොඩනැගීමේ ස්ක්රිප්ට් වලට C23 ප්රමිතිය ඇතුළත් වේ.
- යුගල කළ char/wchar_t ශ්රිත සඳහා T-macros එක් කරන ලදී.
- C++ API වෙත කැදලි ලිවීමේ ගනුදෙනු සඳහා සහය එක් කරන ලදී.
- අර්ථකථන අනුවාද පිරිවිතරයේ දෙවන සංස්කරණය වෙත සංක්රමණය (“Semantic Versioning 2”) සම්පූර්ණ කර ඇති අතර අනුවාද තොරතුරු VERSION.json වෙත අපනයනය කිරීම සහතික කර ඇත.
- ගොඩනැගීමේ ප්රතිනිෂ්පාදනය සඳහා, SOURCE_DATE_EPOCH පරිසර විචල්යය සඳහා සහය එක් කරන ලදී. MDBX_BUILD_TIMESTAMP සහාය රඳවාගෙන ඇති අතර මෙම විචල්යය ප්රමුඛත්වය ගනී.
- MDBX_BUILD_METADATA විකල්පය හරහා libmdbx ගොඩනැගීම පිළිබඳ අමතර තොරතුරු සඳහන් කිරීමේ හැකියාව එක් කරන ලදී. දැන් නිශ්චිත තොරතුරු 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::ජ්යාමිතික ප්රමාණයේ නියතයන් සඳහා, මූලික වර්ගය අත්සන් නොකළ size_t සිට අත්සන් කළ intptr_t දක්වා වෙනස් කර ඇත.
- CRT වෙනුවට ntdll භාවිතා කිරීමට තේරීම දැන් සිදු කරනු ලබන්නේ C++ API පැහැදිලිව අක්රිය කරන විට පමණි.
- mdbx_txn_commit() වෙත යවන ලද ගබ්සා කරන ලද/අවලංගු කරන ලද කියවීම් ගනුදෙනුවල මතකය නිදහස් කර ඇති බව සහතික කරයි. API සම්මුතියට එවැනි ගනුදෙනු mdbx_txn_abort() භාවිතයෙන් මුදා හැරීම අවශ්ය වේ, එමඟින් mdbx_txn_commit() එවැනි අවස්ථාවන්හිදී ගණුදෙණු වලක්වා නොගෙන දෝෂයක් ලබා දෙයි. මෙහි ප්රතිඵලයක් ලෙස යෙදුම්වල දෝෂ හේතුවෙන් මතකය කාන්දු වීම, හැසිරීම් වෙනස්වීම් පොළඹවයි.
- නිර්වචනය කර ඇත්නම් __deprecated_enum macro භාවිතා කිරීම.
- CMake සමඟ ගොඩනඟන විට, C භාෂා සම්මතය දැන් CMAKE_C_STANDARD මත පදනම්ව තෝරා ඇත.
මූලාශ්රය: opennet.ru
