рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рдПрдореНрдмреЗрдбреЗрдб DBMS libmdbx 0.9.1 рдХреЛ рд░рд┐рд▓реАрдЬ

рдЬрд╛рд░реА рдЧрд░рд┐рдпреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрд╕реНрдХрд░рдг 0.9.1 libmdbx (MDBX) рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рдЗрдореНрдмреЗрдбреЗрдб рдХреБрдЮреНрдЬреА-рдорд╛рди рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред libmdbx рдХреЛрдб рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ OpenLDAP рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓рд╛рдЗрд╕реЗрдиреНрд╕.

рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░реНрдг C++ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 1.0 рдЬрд╛рд░реА рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдп рд░ рдирдпрд╛рдБ C++ API рдлреНрд░рд┐рдЬ рдЧрд░реНрдиреЗ рддрдпрд╛рд░реА рдирднрдПрдХреЛ рдХрд╛рд░рдг рд╡рд┐рдореЛрдЪрдирдорд╛ рдврд┐рд▓рд╛рдЗ рдЧрд░реНрди рдирдЪрд╛рд╣реЗрдХреЛ рдмреАрдЪрдорд╛ рднрдПрдХреЛ рд╕рдореНрдЭреМрддрд╛ рд╣реЛред рдкреНрд░рд╕реНрддреБрдд рд╡рд┐рдореЛрдЪрди 9 рдорд╣рд┐рдирд╛рдХреЛ рдХрд╛рдордХреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛ рдЬреБрди рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓рд╛рдИ рд╕реНрдерд┐рд░ рдмрдирд╛рдЙрди рд░ рдпрд╕рдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ рд╣реЛ, рд░ рдпрд╕рдорд╛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫред C++ API.

libmdbx рдкреБрд╕реНрддрдХрд╛рд▓рдп "рдлреЛрд░реНрдХ" рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдореВрд▓ рд░реВрдкрдорд╛ рдкреБрдирдГ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╡рдВрд╢рдЬ рд╣реЛред LMDB - рдЖрдзрд╛рд░рд┐рдд "рдХреБрдЮреНрдЬреА-рдорд╛рди" рд╡рд░реНрдЧрдХреЛ рд▓реЗрдирджреЗрди рдЗрдореНрдмреЗрдбреЗрдб DBMS рд░реВрдЦ B+ рдмрд┐рдирд╛ рд╕рдХреНрд░рд┐рдп рд▓рдЧрд┐рдЩ, рдЬрд╕рд▓реЗ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрднрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд┐рдирд╛ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд╕рд╛рдЭрд╛ (рдЧреИрд░-рдиреЗрдЯрд╡рд░реНрдХ) рдбрд╛рдЯрд╛рдмреЗрд╕рд╕рдБрдЧ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред libmdbx рдореМрд▓рд┐рдХ рд░реВрдкрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ рдпрд╕рдХреЛ рдкреБрд░реНрдЦрд╛рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ, рдПрдХреИ рд╕рд╛рде рдЙрдиреНрдореВрд▓рди рд╡рд╛ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ рдХрдо рдЧрд░реНрджрд╛ред рдПрдХреИ рд╕рдордпрдорд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рдЕрдиреБрд╕рд╛рд░, libmdbx LMDB рднрдиреНрджрд╛ рдЕрд▓рд┐ рдЫрд┐рдЯреЛ рд░ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмрдвреА рднрд░рдкрд░реНрджреЛ рдЫред

libmdbx рд╕реБрдЭрд╛рд╡ рджрд┐рдиреНрдЫ рдПрд╕рд┐рдб, CPU рдХреЛрд░рд╣рд░реВрдорд╛ рд░реИрдЦрд┐рдХ рд╕реНрдХреЗрд▓рд┐рдВрдЧрдХреЛ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдХрдбрд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рд░ рдЧреИрд░-рдмреНрд▓рдХрд┐рдЩ рдкрдврд╛рдЗред рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдорд╣рд░реВ (1-рдереНрд░реЗрдб рд╣рд╛рдЗрдкрд░рдереНрд░реЗрдб рдореЛрдбрдорд╛ 2 рднреМрддрд┐рдХ рдХреЛрд░рд╣рд░реВ рд╕рд╣рд┐рдд CPU i4-8U рдорд╛ 7-4600-2-4 рдереНрд░реЗрдбрд╣рд░реВрдорд╛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкрдвреНрди/рдЦреЛрдЬреА рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдЙрдБрджреИ):

рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рдПрдореНрдмреЗрдбреЗрдб DBMS libmdbx 0.9.1 рдХреЛ рд░рд┐рд▓реАрдЬ

MDBX рд░ LMDB рдмреАрдЪрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд┐рдиреНрдирддрд╛рд╣рд░реВ:

  • рдореМрд▓рд┐рдХ рд░реВрдкрдорд╛, рдХреЛрдб рдЧреБрдгрд╕реНрддрд░, API рд╕реНрдерд┐рд░рддрд╛, рдкрд░реАрдХреНрд╖рдг рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рдБрдЪрд╣рд░реВрдорд╛ рдмрдвреА рдзреНрдпрд╛рди рджрд┐рдЗрдиреНрдЫред
  • рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдЕрдбрд┐рдЯрд╕рдореНрдо рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдирджреЗрдЦрд┐ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдХреНрд░рдордорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдердк рдирд┐рдпрдиреНрддреНрд░рдгред
  • рд╕реНрд╡рдд: рдХрдореНрдкреНрдпрд╛рдХреНрдЯрд┐рдлрд┐рдХреЗрд╢рди рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдЖрдХрд╛рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдиред
  • 32-рдмрд┐рдЯ рд░ 64-рдмрд┐рдЯ рд╕рдореНрдореЗрд▓рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ рдврд╛рдБрдЪрд╛ред
  • рджрд╛рдпрд░рд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдирдореВрдирд╛ рдорд╛рддреНрд░рд╛рд╣рд░реВрдХреЛ рдЕрдиреБрдорд╛рди (рджрд╛рдпрд░рд╛ рдХреНрд╡реЗрд░реА рдЕрдиреБрдорд╛рди)ред
  • рджреБрдИ рдЧреБрдгрд╛ рд▓рд╛рдореЛ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдЪрдпрдирдпреЛрдЧреНрдп рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреГрд╖реНрда рдЖрдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
  • рдХреЗрд╣рд┐ рд░рд┐рдХрднрд░реА рдХреНрд╖рдорддрд╛рд╣рд░реБ рд╕рдВрдЧ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдЦрдгреНрдбрддрд╛ рдЬрд╛рдБрдЪ рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ред

рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░ рд░ рд╕реБрдзрд╛рд░ рдкрдЫрд┐ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕рдорд╛рдЪрд╛рд░ рдЬрдирд╡рд░реА 0.5 рдорд╛ рд╕рдВрд╕реНрдХрд░рдг 2020 рдХреЛ рдкрд░рд┐рдЪрдп рд╕рдВрдЧ:

  • рддреБрд░реБрдиреНрдд рд╕рдорд░реНрдерди рд░ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдлрдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рдкреНрд░рдгрд╛рд▓реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рдореВрд╣.
  • рдПрдХ рджрд░реНрдЬрди рднрдиреНрджрд╛ рдмрдвреА рддреНрд░реБрдЯрд┐ рд░ рдХрдордЬреЛрд░реАрд╣рд░реВ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ (рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред рд▓рдЧ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН).
  • рдзреЗрд░реИ рдЯрд╛рдЗрдкреЛ рд░ рд╣рд┐рдЬреНрдЬреЗ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдлрд┐рдХреНрд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ рдзреЗрд░реИ рдХрд╕реНрдореЗрдЯрд┐рдХ рд╕реБрдзрд╛рд░рд╣рд░реВ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • iOS, Android рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди, рдмрд┐рд▓реНрдбрд░реВрдЯ, рдорд╕рд▓, uClibc, WSL1 ╨╕ рд░рдХреНрд╕реА.
  • C++ API рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдорд╛ рдЬрд╛рд░реА рдЧрд░рд┐рдпреЛ рдПрдХ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓.
  • Doxygen рдврд╛рдБрдЪрд╛ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬреЗрдирд░реЗрд╢рдирдорд╛ рдирд┐рд░реНрдорд┐рдд рдХрд╛рдЧрдЬрд╛рдд рдЕрдирд▓рд╛рдЗрди рдХрд╛рдЧрдЬрд╛рдд.
  • рдПрдХреАрдХреГрдд рд╕реНрд░реЛрдд рдкрд╛рдард╣рд░реВрдХреЛ рд╕рд╛рде рдЕрднрд┐рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рд▓реЗрдирджреЗрди рд░ рдХрд░реНрд╕рд░рд╣рд░реВ, рд▓реЗрдирджреЗрди рд░ рдХрд░реНрд╕рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рддрдпрд╛рд░ рдЧрд░реНрди рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
  • B+ рдЯреНрд░реА MVCC рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВрдорд╛ рд╕рдиреНрджрд░реНрдн рдЕрдЦрдгреНрдбрддрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдердк рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ MVCC рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рдЬрд╛рдБрдЪ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рд░рд┐рдХрднрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде рдХреБрдиреИ рдкрдирд┐ рдореЗрдЯрд╛ рдкреГрд╖реНрда рдорд╛рд░реНрдлрдд рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдпред
  • рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпрд╣рд░реВ, рдЗрддреНрдпрд╛рджрд┐рдХрд╛ рд▓рд╛рдЧрд┐ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдмрд╛рдЯ рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреБрди: рдЦреЛрд▓реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд░реНрдердиред
  • рдбрд╛рдЯрд╛рдмреЗрд╕ рдЦреЛрд▓реНрджрд╛ MDBX_NOSUBDIR рд╡рд┐рдХрд▓реНрдкрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рд╢реЛрдзрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдпреЛред
  • рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдмрд┐рдиреНрджреБ рдорд╛рдирд╣рд░реВ рд░ JavaScript "рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ" рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ рдердкрд┐рдпреЛред
  • рдХреБрд▓ 430 рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ 93 рдлрд╛рдЗрд▓рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, 25 рд╣рдЬрд╛рд░ рднрдиреНрджрд╛ рдмрдвреА рд▓рд╛рдЗрдирд╣рд░реВ рдердкрд┐рдПрдХреЛ рдерд┐рдпреЛ, 8.5 рд╣рдЬрд╛рд░ рднрдиреНрджрд╛ рдмрдвреА рд▓рд╛рдЗрдирд╣рд░реВ рдореЗрдЯрд╛рдЗрдпреЛред

libmdbx рдХреЛ рдкрдЫрд┐рд▓реНрд▓реЛ рд╡рд┐рдХрд╛рд╕рд▓реЗ рдЕрдиреНрддрд┐рдо C++ API, рдЖрдзрд╛рд░ рдХреЛрдбрдХреЛ рдердк рд╕реНрдерд┐рд░реАрдХрд░рдг, рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдорд╛ рд╕реБрдзрд╛рд░, рд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЬрд┐рдЩрдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рд╣реБрдиреЗрдЫред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ, рдпреЛ рдврд╛рдБрдЪрд╛рдорд╛ рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдиреЛрдЯ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ MessagePack.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди