рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдПрдореНрдмреЗрдбреЗрдб DBMS libmdbx 0.11.3 рдХрд╛ рд╡рд┐рдореЛрдЪрди

libmdbx 0.11.3 (MDBX) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдХреЙрдореНрдкреИрдХреНрдЯ рдПрдореНрдмреЗрдбреЗрдб рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред libmdbx рдХреЛрдб рдХреЛ OpenLDAP рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред рд╕рднреА рдореМрдЬреВрджрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рд╕рд╛рде рд╣реА рд░реВрд╕реА рдПрд▓реНрдмреНрд░рд╕ 2000 рднреАред 2021 рдХреЗ рдЕрдВрдд рдореЗрдВ, libmdbx рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ Ethereum рдХреНрд▓рд╛рдЗрдВрдЯ - рдПрд░рд┐рдЧреЙрди рдФрд░ рдирдП "рд╢рд╛рд░реНрдХ" рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрд▓рдмреНрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд╛рдирдХрд╛рд░реА, рдЙрдЪреНрдЪрддрдо рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓рд╛ рдПрдереЗрд░рд┐рдпрдо рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИред

рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, libmdbx LMDB DBMS рдХрд╛ рдПрдХ рдЧрд╣рд░рд╛ рдирдпрд╛ рд╕реНрд╡рд░реВрдк рд╣реИ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛, рдлреАрдЪрд░ рд╕реЗрдЯ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХреЗ рдкреВрд░реНрд╡рдЬ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓рдПрдордбреАрдмреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, libmdbx рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛, рдПрдкреАрдЖрдИ рд╕реНрдерд┐рд░рддрд╛, рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рдВрдЪ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреБрдЫ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рд▓рд┐рд╣рд╛рдЬ рд╕реЗ, libmdbx рд╕реАрдкреАрдпреВ рдХреЛрд░ рдореЗрдВ рд░реИрдЦрд┐рдХ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде ACID, рдордЬрдмреВрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреНрд░рдордмрджреНрдзрддрд╛ рдФрд░ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд░реАрдбрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдСрдЯреЛ-рдХреЙрдореНрдкреИрдХреНрдЯрд┐рдлрд┐рдХреЗрд╢рди, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдХрд╛рд░ рдкреНрд░рдмрдВрдзрди рдФрд░ рд░реЗрдВрдЬ рдХреНрд╡реЗрд░реА рдЕрдиреБрдорд╛рди рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред 2016 рд╕реЗ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреЙрдЬрд┐рдЯрд┐рд╡ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддреНрдд рдкреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ 2017 рд╕реЗ рдЗрд╕рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

libmdbx рдПрдХ C++ API, рд╕рд╛рде рд╣реА рд░рд╕реНрдЯ, рд╣рд╛рд╕реНрдХреЗрд▓, рдкрд╛рдпрдерди, NodeJS, рд░реВрдмреА, рдЧреЛ рдФрд░ рдирд┐рдо рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣реА-рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

11 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ рдкрд┐рдЫрд▓реА рдЦрдмрд░ рдХреЗ рдмрд╛рдж рд╕реЗ рдкреНрд░рдореБрдЦ рдирд╡рд╛рдЪрд╛рд░, рд╕реБрдзрд╛рд░ рдФрд░ рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝реЗ рдЧрдП:

  • C++ API рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдмрдбрд╝реЗ рд▓реЗрдирджреЗрди рдХрд░рддреЗ рд╕рдордп рдЬреАрд╕реА рдбреЗрдЯрд╛ рдХрд╛ рдЕрдкрдбреЗрдЯ рдХрд╛рдлреА рддреЗрдЬ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдПрдереЗрд░рд┐рдпрдо рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ libmdbx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
  • рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрджреНрдпрддрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд-рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рд▓реЗрдирджреЗрди рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдлрд╝рдВрдХреНрд╢рди mdbx_env_get_syncbytes(), mdbx_env_get_syncperiod() рдФрд░ mdbx_env_get_syncbytes() рдЬреЛрдбрд╝реЗ рдЧрдПред MDBX_SET_UPPERBOUND рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
  • C++ 11/14/17/20 рдореЛрдб рдореЗрдВ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕рднреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдорд╛рдкреНрдд рдХрд░ рджреА рдЧрдИ рд╣реИрдВред рд▓реАрдЧреЗрд╕реА рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ: рдХреНрд▓реИрдВрдЧ 3.9 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬреАрд╕реАрд╕реА 4.8 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ CentOS/RHEL 9 рдХреЗ рд▓рд┐рдП cdevtoolset-7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рд╢рд╛рдорд┐рд▓ рд╣реИред
  • 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ