ඉහළ කාර්යසාධනයක් සහිත කාවැද්දූ DBMS libmdbx 0.10.4 සහ libfpta 0.3.9 නිකුත් කිරීම

libmdbx 0.10.4 (MDBX) පුස්තකාලය නිකුත් කරන ලද්දේ ඉහළ කාර්ය සාධනයක් සහිත සංයුක්ත කාවැද්දූ යතුරු-අගය දත්ත ගබඩාවක් සහ ද්විතියික සහ සංයුක්ත දර්ශක සහිත දත්ත වගු නිරූපණයක් ක්‍රියාත්මක කරන ආශ්‍රිත libfpta 0.3.9 (FPTA) පුස්තකාලය ක්‍රියාත්මක කිරීමෙනි. MDBX මත. පුස්තකාල දෙකම OSI අනුමත බලපත්‍ර යටතේ බෙදා හරිනු ලැබේ. සියලුම වත්මන් මෙහෙයුම් පද්ධති සහ ගෘහ නිර්මාණ ශිල්පයට මෙන්ම රුසියානු Elbrus 2000 සඳහා සහය දක්වයි.

ඓතිහාසික වශයෙන්, libmdbx යනු LMDB DBMS හි ගැඹුරු ප්‍රතිනිර්මාණයක් වන අතර විශ්වසනීයත්වය, විශේෂාංග කට්ටලය සහ කාර්ය සාධනය අතින් එහි මුතුන් මිත්තන්ට වඩා උසස් වේ. LMDB හා සසඳන විට, libmdbx කේතයේ ගුණාත්මකභාවය, API ස්ථායිතාව, පරීක්ෂා කිරීම සහ ස්වයංක්‍රීය චෙක්පත් කෙරෙහි වැඩි අවධානයක් යොමු කරයි. සමහර ප්‍රතිසාධන හැකියාවන් සහිත දත්ත සමුදා ව්‍යුහයේ අඛණ්ඩතාව පරීක්ෂා කිරීම සඳහා උපයෝගීතාවයක් සපයනු ලැබේ.

තාක්‍ෂණය අනුව, libmdbx ACID, ප්‍රබල වෙනස්වීම් අනුක්‍රමිකකරණය සහ CPU මධ්‍ය හරහා රේඛීය පරිමාණය සමඟ කියවීම් අවහිර නොකිරීම ලබා දෙයි. ස්වයංක්‍රීය සංයුක්ත කිරීම, ස්වයංක්‍රීය දත්ත සමුදා ප්‍රමාණය කළමනාකරණය සහ පරාස විමසුම් ඇස්තමේන්තුව සඳහා සහය දක්වයි. 2016 සිට, Positive Technologies විසින් ව්‍යාපෘති සඳහා අරමුදල් සපයනු ලබන අතර 2017 සිට එහි නිෂ්පාදන සඳහා භාවිතා කර ඇත.

libmdbx විසින් C++ API එකක් මෙන්ම Rust, Haskell, Python, NodeJS, Ruby, Go, සහ Nim සඳහා උද්යෝගිමත්-සහාය දක්වන භාෂා බන්ධන ඉදිරිපත් කරයි. libfpta සඳහා, API විස්තරය පමණක් C/C++ ශීර්ෂ ගොනුවක් ආකාරයෙන් ප්‍රසිද්ධියේ පවතී.

ප්‍රධාන නවෝත්පාදන, වැඩිදියුණු කිරීම් සහ නිවැරදි කිරීම් මැයි 9 වන දින පෙර ප්‍රවෘත්ති වලින් එකතු කරන ලදී:

  • ප්‍රතිනිෂ්පාදනය කළ හැකි ගොඩනැගීම් සක්‍රීය කරයි.
  • ඉතා දුර්ලභ අවස්ථාවන්හිදී, ගනුදෙනුවක් සිදු කිරීමේදී ලූපයක්/කැටි කිරීමක් සිදුවිය හැකි දෝෂයක් නිරාකරණය කර ඇත. Positive Technologies විශේෂඥයින් විසින් ඔවුන්ගේම නිෂ්පාදනවල අභ්‍යන්තර පරීක්‍ෂණයේදී ගැටලුව හඳුනාගෙන ඇත.
  • පරීක්ෂණ වැඩිදියුණු කර ඇති අතර දත්ත සමුදාය තුළ ඇති පිටු ගසෙහි සහ GC අන්තර්ගතයේ ළඟා විය හැකි සියලුම සමස්ථානික නොවන තත්ව පරීක්ෂා කිරීමට පරීක්ෂණ අවස්ථා පුළුල් කර ඇත.
  • C++ API හි, අමතර “noexcept” එකක් සවි කර ඇත, “cursor::erase()” ක්‍රමය සඳහා අමතර අධි බර එකතු කර ඇත, බෆර ක්‍රියාත්මක කිරීම “std:: string” භාවිතයෙන් ගැලපීම සහතික කර ඇත. (CLANG libstdc++ සඳහා අදාළ වේ).
  • විශාල ගනුදෙනු වලදී දත්ත වෙනස් කිරීමේදී දුර්ලභ අනපේක්ෂිත දෝෂයක් MDBX_PROBLEM මගින් ප්‍රකාශ වූ අපිරිසිදු පිටු ඉහිරීමේ ඇල්ගොරිතමයේ (වෙනස් කළ දත්ත සමුදා පිටු තෝරාගත් පිටකිරීමේ) ප්‍රතිගාමී වීමක් ඉවත් කර ඇත.
  • දත්ත සමුදායට හිතාමතාම හානි සිදුවුවහොත් ස්ථායීතාවය සහතික කිරීම සඳහා චෙක්පත් ගණනාවක් එකතු කිරීම සමඟ අදියර පරීක්ෂණයක් සිදු කරන ලදී.
  • ස්ථාවර සුළු අනතුරු ඇඟවීම් UndefinedBehaviorSanitizer සහ Coverity Scan ගැටළු.
  • පුස්තකාලයේ පැරණි අනුවාද මගින් සාදන ලද දත්ත සමුදා රූප තුළ ඇති කැදලි පිටු තුළ යල් පැන ගිය සහ තවදුරටත් භාවිතා නොකරන අභ්‍යන්තර ධජය "P_DIRTY" පරීක්ෂා කිරීම ස්ථාවරයි.
  • CMake ස්ක්‍රිප්ට් වල, LTO (link-time optimization) සඳහා අවශ්‍ය සම්පාදක සංරචක සෙවීම වැඩිදියුණු කර ඇත.
  • එකවර කියවන උපරිම සංඛ්‍යාව 32767 දක්වා වැඩි කර ඇත.
  • Valgrind සහ AddressSanitizer භාවිතා කරන විට කාර්ය සාධනය වැඩි දියුණු කිරීම.
  • වින්ඩෝස් හි, MDBX_NOTLS මාදිලියේ (නූල් දේශීය ගබඩාව භාවිතයෙන් තොරව) වැඩ කරන විට SRW-lock භාවිතා කිරීම ඉවත් කර ඇත, පද්ධති කාලය වෙනස් වී ඇත්නම් bootid උත්පාදනය සවි කර ඇත, WSL1 සහ WSL2 හඳුනාගැනීම වැඩි දියුණු කර ඇත, සහ හැකියාව DrvFS හරහා සවිකර ඇති Plan 9 හි දත්ත ගබඩාවක් විවෘත කරන්න එකතු කර ඇත.
  • සමස්තයක් වශයෙන්, ගොනු 160 කට වෙනස්කම් 57 කට වඩා සිදු කරන ලදී, පේළි ~ 5000 ක් එකතු කරන ලදී, ~ 2500 මකා දමන ලදී.

මම විශේෂයෙන් Erigon ව්‍යාපෘති කණ්ඩායමට (Ethereum පරිසර පද්ධතිය) අතිශයින් භාවිත අවස්ථා වලදී පරීක්ෂා කිරීමට ඔවුන්ගේ සහායට ස්තූති කිරීමට කැමතියි. සෑම Erigon ස්ථාපනයකදීම 0.10.0-1 TB දත්ත සමුදා පරිමාවක් සහිත libmdbx v2 නිකුතුවේ සිට මාස පහක් තුළ (Ethereum නෝඩ් වලින් 7% ක් භාවිතා කරයි) දත්ත සමුදා දූෂණය පිළිබඳ වාර්තා තුනක් පමණක් ලැබී ඇති බව සැලකිය යුතු කරුණකි. බාහිර හේතූන් නිසා සිදු වූවා මිස මෘදුකාංග දෝෂ නොවේ: අවස්ථා දෙකකදී හේතුව RAM අසාර්ථක වීම, තෙවනුව BTRFS භාවිතයෙන් ගබඩා උප පද්ධතියේ නිශ්චිත වින්‍යාසය තුළ දත්ත නැවත සැකසීමේ දෝෂයකි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න