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

Libmdbx 0.10.4 (MDBX) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдХ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдХреЙрдореНрдкреИрдХреНрдЯ рдПрдореНрдмреЗрдбреЗрдб рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд libfpta 0.3.9 (FPTA) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдорд╛рдзреНрдпрдорд┐рдХ рдФрд░ рд╕рдордЧреНрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рд░рдгреАрдмрджреНрдз рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдПрдордбреАрдмреАрдПрдХреНрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ред рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдУрдПрд╕рдЖрдИ рдЕрдиреБрдореЛрджрд┐рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рдореМрдЬреВрджрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рд╕рд╛рде рд╣реА рд░реВрд╕реА рдПрд▓реНрдмреНрд░рд╕ 2000 рднреАред

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

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

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

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

  • рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
  • рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг, рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд▓реЗрдирджреЗрди рдХреЗ рджреМрд░рд╛рди рд▓реВрдк/рдлреНрд░реАрдЬ рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдкреЙрдЬрд┐рдЯрд┐рд╡ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдиреЗ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреА рдереАред
  • рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдкреЗрдЬ рдЯреНрд░реА рдФрд░ рдЬреАрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рднреА рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдЧреИрд░-рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • C++ API рдореЗрдВ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд "noexcept" рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, "рдХрд░реНрд╕рд░::рдЗрд░реЗрдЬрд╝()" рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд▓реЛрдб рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рдмрдлрд╝рд░реНрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдВрд░реЗрдЦрдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "std::string" рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрдЪрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред (CLANG libstdc++ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ)ред
  • рдЧрдВрджреЗ рдкреЗрдЬ рд╕реНрдкрд┐рд▓рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо (рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкреЗрдЬреЛрдВ рдХреА рдЪрдпрдирд╛рддреНрдордХ рдЕрд╕реНрд╡реАрдХреГрддрд┐) рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдЬреЛ рдХрд┐ рдмрдбрд╝реЗ рд▓реЗрдирджреЗрди рдореЗрдВ рдбреЗрдЯрд╛ рдмрджрд▓рддреЗ рд╕рдордп рдПрдХ рджреБрд░реНрд▓рдн рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд MDBX_PROBLEM рддреНрд░реБрдЯрд┐ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реБрдЖ рдерд╛, рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЪрд░рдгрдмрджреНрдз рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рдЫреЛрдЯреА-рдЫреЛрдЯреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдФрд░ рдХрд╡рд░рд┐рдЯреА рд╕реНрдХреИрди рд╕рдорд╕реНрдпрд╛рдПрдБ рдареАрдХ рдХреА рдЧрдИрдВред
  • рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдиреЗрд╕реНрдЯреЗрдб рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдФрд░ рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрдВрддрд░рд┐рдХ рдзреНрд╡рдЬ "P_DIRTY" рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рд╕реАрдПрдордХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдПрд▓рдЯреАрдУ (рд▓рд┐рдВрдХ-рдЯрд╛рдЗрдо рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдШрдЯрдХреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдПрдХ рд╕рд╛рде рдкрд╛рдардХреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 32767 рд╣реЛ рдЧрдИ рд╣реИред
  • рд╡реИрд▓рдЧреНрд░рд┐рдВрдб рдФрд░ рдПрдбреНрд░реЗрд╕ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖред
  • рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░, MDBX_NOTLS рдореЛрдб (рдереНрд░реЗрдб рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛) рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп SRW-рд▓реЙрдХ рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдордп рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рддреЛ рдмреВрдЯрд┐рдб рдЬреЗрдирд░реЗрд╢рди рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, WSL1 рдФрд░ WSL2 рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ DrvFS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рдкреНрд▓рд╛рди 9 рдкрд░ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреЛрд▓реЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
  • рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, 160 рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ 57 рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП, ~5000 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реА рдЧрдИрдВ, ~2500 рд╣рдЯрд╛ рджреА рдЧрдИрдВред

рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрд░рд┐рдЧреЙрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреАрдо (рдПрдереЗрд░рд┐рдпрдо рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо) рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ libmdbx v0.10.0 рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдкрд╛рдВрдЪ рдорд╣реАрдиреЛрдВ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдПрд░рд┐рдЧреЙрди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ 1-2 рдЯреАрдмреА рдХреА рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рддреНрд░рд╛ (рдПрдереЗрд░рд┐рдпрдо рдиреЛрдбреНрд╕ рдХреЗ 7% рдкрд░ рдкреНрд░рдпреБрдХреНрдд) рдХреЗ рд╕рд╛рде, рдбреЗрдЯрд╛рдмреЗрд╕ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреА рдХреЗрд╡рд▓ рддреАрди рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИрдВ, рд╕рднреА рдЬреЛ рдмрд╛рд╣рд░реА рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╣реБрдЖ, рди рдХрд┐ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг: рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг RAM рд╡рд┐рдлрд▓рддрд╛ рдереА, рддреАрд╕рд░реЗ рдореЗрдВ BTRFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ред

рд╕реНрд░реЛрдд: opennet.ru

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