ඉහළ කාර්ය සාධනයක් එබ්බවූ DBMS libmdbx 0.11.3 මුදා හැරීම

libmdbx 0.11.3 (MDBX) පුස්තකාලය නිකුත් කරන ලද්දේ ඉහළ කාර්ය සාධනයක් සහිත සංයුක්ත කාවැද්දූ යතුරු-අගය දත්ත ගබඩාවක් ක්‍රියාත්මක කිරීමෙනි. libmdbx කේතය OpenLDAP පොදු බලපත්‍රය යටතේ බලපත්‍ර ලබා ඇත. දැනට පවතින සියලුම මෙහෙයුම් පද්ධති සහ ගෘහනිර්මාණ සඳහා සහය දක්වයි, මෙන්ම රුසියානු Elbrus 2000. 2021 අවසානයේ, libmdbx වේගවත්ම Ethereum සේවාලාභීන් දෙදෙනෙකු වන Erigon සහ නව "Shark" හි ගබඩා පසුබිමක් ලෙස භාවිතා කරයි. තොරතුරු, ඉහළම කාර්යසාධනයක් සහිත Ethereum සේවාදායකයා වේ.

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

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

libmdbx විසින් C++ API එකක් මෙන්ම Rust, Haskell, Python, NodeJS, Ruby, Go, සහ Nim සඳහා උද්යෝගිමත්-සහාය දක්වන භාෂා බන්ධන ඉදිරිපත් කරයි.

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

  • C++ API භාවිතයට සූදානම් යැයි සැලකේ.
  • විශාල ගනුදෙනු සිදු කරන විට GC දත්ත යාවත්කාලීන කිරීම සැලකිය යුතු ලෙස වේගවත් කර ඇත, එය Ethereum පරිසර පද්ධතිය තුළ libmdbx භාවිතා කිරීමේදී විශේෂයෙන් වැදගත් වේ.
  • දත්ත සමුදා ආකෘතියේ අභ්‍යන්තර අත්සන ස්වයංක්‍රීය යාවත්කාලීන කිරීමට සහය වන පරිදි වෙනස් කර ඇත, එය පරිශීලකයින්ට සම්පූර්ණයෙන්ම විනිවිද පෙනෙන වේ. වත්මන් අනුවාද මගින් වාර්තා කර ඇති ගනුදෙනු කියවීමට පුස්තකාලයේ යල් පැන ගිය අනුවාද භාවිතා කරන විට දත්ත සමුදා දූෂණය පිළිබඳ ව්‍යාජ-ධනාත්මක පණිවිඩ ඉවත් කිරීමට මෙය ඔබට ඉඩ සලසයි.
  • mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() සහ mdbx_env_get_syncbytes() ශ්‍රිත එකතු කරන ලදී. MDBX_SET_UPPERBOUND මෙහෙයුම සඳහා සහය එක් කරන ලදී.
  • C++ 11/14/17/20 මාතයන් තුළ සියලුම සහය දක්වන සම්පාදක සමඟ ගොඩනඟන විට සියලු අනතුරු ඇඟවීම් ඉවත් කර ඇත. ලෙගසි සම්පාදක සමඟ ගැළපීම සහතික කෙරේ: CentOS/RHEL 3.9 සඳහා cdevtoolset-4.8 භාවිතයෙන් එකලස් කිරීම ඇතුළුව, 9 සිට ආරම්භ වන clang, 7 සිට gcc.
  • mdbx_chk උපයෝගීතාව භාවිතයෙන් නිශ්චිත මෙටා පිටුවකට අතින් මාරු වීමෙන් පසු මෙටා පිටු ගැටුමක හැකියාව නිරාකරණය කර ඇත.
  • ලෙගසි මෙටා පිටු උඩින් ලියන විට අනපේක්ෂිත MDBX_PROBLEM දෝෂයක් ලබා දී ඇත.
  • MDBX_GET_BOTH ඉල්ලීමක් ක්‍රියාවට නංවන විට නිවැරදි නොගැලපීමකදී MDBX_NOTFOUND ආපසු යැවීම ස්ථාවරයි.
  • කර්නලය සමඟ අතුරුමුහුණත් විස්තර සහිත ශීර්ෂ ගොනු නොමැති විට ලිනක්ස් හි සම්පාදන දෝෂයක් විසඳා ඇත.
  • MDBX_SHRINK_ALLOWED අභ්‍යන්තර ධජය සහ MDBX_ACCEDE විකල්පය අතර ගැටුමක් නිරාකරණය කර ඇත.
  • අනවශ්‍ය තහවුරු කිරීම් කිහිපයක් ඉවත් කර ඇත.
  • mdbx_env_set_option() ශ්‍රිතයෙන් MDBX_RESULT_TRUE හි අනපේක්ෂිත ප්‍රතිලාභය ස්ථාවර කර ඇත.
  • සමස්තයක් වශයෙන්, ගොනු 90 කට වෙනස්කම් 25 කට වඩා සිදු කරන ලදී, පේළි ~ 1300 ක් එකතු කරන ලදී, ~ 600 මකා දමන ලදී.

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

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