рдХреЙрдореНрдкреЕрдХреНрдЯ рдПрдореНрдмреЗрдбреЗрдб DBMS libmdbx 0.9.1 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╕реЛрдбрд▓реЗ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╡реГрддреНрддреА 0.9.1 libmdbx (MDBX) рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдХреЙрдореНрдкреЕрдХреНрдЯ рдПрдореНрдмреЗрдбреЗрдб рдХреА-рд╡реНрд╣реЕрд▓реНрдпреВ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА. libmdbx рдХреЛрдб рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдУрдкрдирдПрд▓рдбреАрдПрдкреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд░рд╡рд╛рдирд╛.

рд╕рдзреНрдпрд╛рдЪреА рдЖрд╡реГрддреНрддреА рд╕рдВрдкреВрд░реНрдг C++ рд╕рдорд░реНрдердирд╛рд╕рд╣ рджреАрд░реНрдШрдХрд╛рд▓реАрди рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреА 1.0 рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╣реЗрддреВрдиреЗ рдЖрдгрд┐ рдирд╡реАрди C++ API рдЧреЛрдард╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдкреБрд░реА рддрдпрд╛рд░реАрдореБрд│реЗ рд░рд┐рд▓реАрдЭрд▓рд╛ рд╡рд┐рд▓рдВрдм рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдирд┐рдЪреНрдЫрд╛ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рддрдбрдЬреЛрдб рдЖрд╣реЗ. рд╕рд╛рджрд░ рдХреЗрд▓реЗрд▓реЗ рдкреНрд░рдХрд╛рд╢рди рд▓рд╛рдпрдмреНрд░рд░реА рд╕реНрдерд┐рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реБрдзрд╛рд░рдгреЗ рдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ 9 рдорд╣рд┐рдиреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рдкреНрд░рд╛рдердорд┐рдХ рдЖрд╡реГрддреНрддреА рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ C++ API.

libmdbx рд▓рд╛рдпрдмреНрд░рд░реА рдлрдХреНрдд рдПрдХ "рдХрд╛рдЯрд╛" рдирд╛рд╣реА рддрд░ рдореВрд▓рдд: рдкреБрдиреНрд╣рд╛ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рд╡рдВрд╢рдЬ рдЖрд╣реЗ LMDB тАФ рдЖрдзрд╛рд░рд┐рдд тАЬрдХреА-рд╡реНрд╣реЕрд▓реНрдпреВтАЭ рд╡рд░реНрдЧрд╛рдЪреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдореНрдмреЗрдбреЗрдб рдбреАрдмреАрдПрдордПрд╕ рдЭрд╛рдб 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 рд╕рд╛рдареА рд╕рдорд░реНрдерди, рдмрд┐рд▓реНрдбрд░реВрдЯ, musl, uClibc, рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ 1 ╨╕ рд╡рд╛рдИрди.
  • C++ API рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдордзреНрдпреЗ рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓реЗ рдПрдХ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╛рдЗрд▓.
  • Doxygen рдлреЙрд░рдореЕрдЯ рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЬрдирд░реЗрд╢рдирдордзреНрдпреЗ рдЕрдВрдЧрднреВрдд рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдСрдирд▓рд╛рдЗрди рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.
  • рдПрдХрддреНрд░рд┐рдд рд╕реНрд░реЛрдд рдЧреНрд░рдВрдерд╛рдВрд╕рд╣ рд╕рдВрдЧреНрд░рд╣рдгрд╛рдВрдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдирд┐рд░реНрдорд┐рддреА рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЖрд╣реЗ.
  • рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдгрд┐ рдХрд░реНрд╕рд░, рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рдХрд░реНрд╕рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ.
  • B+рдЯреНрд░реА MVCC рд╕реНрдиреЕрдкрд╢реЙрдЯреНрд╕рдордзреНрдпреЗ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдЕрдЦрдВрдбрддрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.
  • рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ MVCC рд╕реНрдиреЕрдкрд╢реЙрдЯ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреАрд╕рд╛рдареА рд╕реНрд╡рд┐рдЪ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрд╕рд╣ рдХреЛрдгрддреНрдпрд╛рд╣реА рдореЗрдЯрд╛ рдкреГрд╖реНрдард╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢рдпреЛрдЧреНрдп.
  • рдЪрд╛рдЪрдгреА рд╣реЗрддреВрдВрд╕рд╛рдареА рдПрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрддреВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдкреБрдиреНрд╣рд╛ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ.
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдШрдбрддрд╛рдирд╛ MDBX_NOSUBDIR рдкрд░реНрдпрд╛рдпрд╛рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА.
  • рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдИрдВрдЯ рд╡реНрд╣реЕрд▓реНрдпреВ рдЖрдгрд┐ JavaScript тАЬрдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓тАЭ рд╕рдВрдЦреНрдпрд╛рдВрдордзреВрди рдкреВрд░реНрдгрд╛рдВрдХ рдХреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдпреЗ рдЬреЛрдбрд▓реА.
  • рдПрдХреВрдг, 430 рдлрд╛рдпрд▓реАрдВрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдгрд╛рд░реЗ 93 рдмрджрд▓ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, 25 рд╣рдЬрд╛рд░рд╛рдВрд╣реВрди рдЕрдзрд┐рдХ рдУрд│реА рдЬреЛрдбрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛, 8.5 рд╣рдЬрд╛рд░рд╛рд╣реВрди рдЕрдзрд┐рдХ рдУрд│реА рд╣рдЯрд╡рд┐рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛.

libmdbx рдЪрд╛ рдкреБрдвреАрд▓ рд╡рд┐рдХрд╛рд╕ рдЕрдВрддрд┐рдо C++ API, рдмреЗрд╕ рдХреЛрдбрдЪреЗ рдкреБрдвреАрд▓ рд╕реНрдерд┐рд░реАрдХрд░рдг, рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реБрдзрд╛рд░рдгреЗ рдЖрдгрд┐ рд▓реЛрдХрдкреНрд░рд┐рдп Linux рд╡рд┐рддрд░рдгрд╛рд╕рд╛рдареА рдкреЕрдХреЗрдЬрд┐рдВрдЧрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрд▓. рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░рдгрд╛рдВрдкреИрдХреА, рд╕реНрд╡рд░реВрдкрд╛рддреАрд▓ рдХреАрд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдореЗрд╕реЗрдЬрдкреЕрдХ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛