рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ DBMS: рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╛рдзрдиреЗ рдирд┐рд╡рдбрддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ

рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ DBMS: рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╛рдзрдиреЗ рдирд┐рд╡рдбрддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ

рдорд╛рдЭреЗ рдирд╛рд╡ рдбреЗрдирд┐рд╕ рд░реЛрдЭрдХреЛрд╡реНрд╣ рдЖрд╣реЗ, рдореА рдЙрддреНрдкрд╛рджрди рд╕рдВрдШрд╛рддреАрд▓ рдЧреЕрдЭрд┐рдирдлреЙрд░реНрдорд╕рд░реНрд╡реНрд╣рд┐рд╕ рдХрдВрдкрдиреАрдордзреНрдпреЗ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯрдЪрд╛ рдкреНрд░рдореБрдЦ рдЖрд╣реЗ рдЬрддреЛрдмрд╛. рдХрд╛рдпрджреЗ рдЖрдгрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдирд┐рдпрдо рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬрдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╛рдареА рдХрд╛рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓рд╛рдЧреВ рдХрд░рддрд╛рдд. рддреГрддреАрдп рдкрдХреНрд╖рд╛рдВрдиреА рдЧреЛрдкрдиреАрдп рдорд╛рд╣рд┐рддреАрд╡рд░ рдкреНрд░рд╡реЗрд╢ рдорд┐рд│рд╡рд╛рд╡рд╛ рдЕрд╕реЗ рдХреЛрдгрд╛рд▓рд╛рд╣реА рд╡рд╛рдЯрдд рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдореБрджреНрджреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗрдд: рдУрд│рдЦ рдЖрдгрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ, рд╕рд┐рд╕реНрдЯрдордордзреАрд▓ рдорд╛рд╣рд┐рддреАрдЪреА рдЕрдЦрдВрдбрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ, рд╕реБрд░рдХреНрд╖рд╛ рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реЙрдЧ рдХрд░рдгреЗ. рдореНрд╣рдгреВрди, рдорд▓рд╛ рдбреАрдмреАрдПрдордПрд╕ рд╕реБрд░рдХреНрд╖реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд╣реА рдордиреЛрд░рдВрдЬрдХ рдореБрджреНрджреНрдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рд╛рдпрдЪреЗ рдЖрд╣реЗ.

рдпреЗрдереАрд▓ рднрд╛рд╖рдгрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд▓реЗрдЦ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рд╣реЛрддрд╛ @DatabasesMeetup, рдЖрдпреЛрдЬрд┐рдд Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕. рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдЪрд╛рдпрдЪреЗ рдирд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛:


рд▓реЗрдЦрд╛рдЪреЗ рддреАрди рднрд╛рдЧ рдЕрд╕рддреАрд▓:

  • рдХрдиреЗрдХреНрд╢рди рдХрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рд╛рд╡реЗ.
  • рдХреГрддреАрдВрдЪреЗ рдСрдбрд┐рдЯ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдХрд╛рдп рдШрдбрдд рдЖрд╣реЗ рддреЗ рдХрд╕реЗ рдиреЛрдВрджрд╡рд╛рдпрдЪреЗ рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ.
  • рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдбреЗрдЯрд╛рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдЖрдгрд┐ рдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреЗ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ.

рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ DBMS: рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╛рдзрдиреЗ рдирд┐рд╡рдбрддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
DBMS рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреЗ рддреАрди рдШрдЯрдХ: рдХрдиреЗрдХреНрд╢рди рд╕рдВрд░рдХреНрд╖рдг, рдХреНрд░рд┐рдпрд╛рдХрд▓рд╛рдк рдСрдбрд┐рдЯрд┐рдВрдЧ рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╕рдВрд░рдХреНрд╖рдг

рддреБрдордЪреЗ рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдд рдЖрд╣реЗ

рддреБрдореНрд╣реА рд╡реЗрдм рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рджреНрд╡рд╛рд░реЗ рдереЗрдЯ рдХрд┐рдВрд╡рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖рдкрдгреЗ рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрдК рд╢рдХрддрд╛. рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛, рдореНрд╣рдгрдЬреЗрдЪ рдбреАрдмреАрдПрдордПрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░реА рд╡реНрдпрдХреНрддреА, рдЕрдкреНрд░рддреНрдпрдХреНрд╖рдкрдгреЗ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддреЗ.

рдХрдиреЗрдХреНтАНрд╢рдирдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНтАНрдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рдгреНтАНрдпрд╛рдкреВрд░реНрд╡реА, рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпрд╛рдВрдЪреА рд░рдЪрдирд╛ рдХрд╢реА рдХреЗрд▓реА рдЬрд╛рдИрд▓ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдкреНрд░рд╢реНтАНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ рддреБрдореНтАНрд╣рд╛рд▓рд╛ рджреЗрдгреЗ рдЖрд╡рд╢реНтАНрдпрдХ рдЖрд╣реЗ:

  • рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдПрдХрд╛ DBMS рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗ рдХрд╛?
  • DBMS рдбреЗрдЯрд╛рдЪрд╛ рдкреНрд░рд╡реЗрд╢ рдХреЗрд╡рд│ рддреБрдореНрд╣реА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ API рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдЯреЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ рдХрд╛;
  • рдбреАрдмреАрдПрдордПрд╕ рд╡реЗрдЧрд│реНрдпрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рднрд╛рдЧрд╛рд▓рд╛ рд╡рд╛рдЯрдк рдХреЗрд▓реЗ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА, рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХреЛрдг рдЖрдгрд┐ рдХрд╕реЗ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддреЗ;
  • рдкреВрд▓рд┐рдВрдЧ/рдкреНрд░реЙрдХреНрд╕реА рдЖрдгрд┐ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд▓реЗрдпрд░реНрд╕ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд рдХреА рдирд╛рд╣реА, рдЬреЗ рдХрдиреЗрдХреНрд╢рди рдХрд╕реЗ рдмрдирд╡рд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛрдг рд╡рд╛рдкрд░рдд рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдмрджрд▓реВ рд╢рдХрддреЗ.

рдЖрддрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рддреЗ рдкрд╛рд╣реВрдпрд╛:

  1. рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╛рдпрд░рд╡реЙрд▓ рдХреНрд▓рд╛рд╕ рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рд╡рд╛рдкрд░рд╛. рд╕рдВрд░рдХреНрд╖рдгрд╛рдЪрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░, рдХрдореАрдд рдХрдореА, DBMS рдордзреНрдпреЗ рдХрд╛рдп рдШрдбрдд рдЖрд╣реЗ рдпрд╛рдЪреА рдкрд╛рд░рджрд░реНрд╢рдХрддрд╛ рд╡рд╛рдврд╡реЗрд▓ рдЖрдгрд┐ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рддреБрдореНрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рд╕рдВрд░рдХреНрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд▓.
  2. рдкрд╛рд╕рд╡рд░реНрдб рдзреЛрд░рдгреЗ рд╡рд╛рдкрд░рд╛. рддреБрдордЪреА рд╡рд╛рд╕реНрддреВ рдХрд╢реА рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ рдпрд╛рд╡рд░ рддреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЛ. рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рдбреАрдмреАрдПрдордПрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреАрд▓ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрд░рдХреНрд╖рдгрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕рд╛ рдирд╛рд╣реА. рдЕрд╢реА рдЕрдиреЗрдХ DBMS рд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдбрд▓рд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╣реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд.

    рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд░реЗрдЯрд┐рдВрдЧ рдлрдВрдХреНрд╢рдиреНрд╕рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдпреЗрдереЗ, рддреБрдореНрд╣реА MS SQL рд╡реНрд╣рд▓реНрдирд░реЗрдмрд┐рд▓рд┐рдЯреА рдЕрд╕реЗрд╕рдорди рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рд╢реЛрдзреВ рд╢рдХрддрд╛ рдпреЗрдереЗ

  3. рдЖрд╡рд╢реНрдпрдХ рдорд╛рд╣рд┐рддреАрд╕рд╣ рд╕рддреНрд░рд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рд╕рдореГрджреНрдз рдХрд░рд╛. рд╕рддреНрд░ рдЕрдкрд╛рд░рджрд░реНрд╢рдХ рдЕрд╕рд▓реНрдпрд╛рд╕, DBMS рдордзреНрдпреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреНрдпреЗ рдХреЛрдг рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗ рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрдд рдирд╛рд╣реА, рддреБрдореНрд╣реА, рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреНрдпреЗ, рдХреЛрдг рдХрд╛рдп рдЖрдгрд┐ рдХрд╛ рдХрд░рдд рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЬреЛрдбреВ рд╢рдХрддрд╛. рд╣реА рдорд╛рд╣рд┐рддреА рдСрдбрд┐рдЯрдордзреНрдпреЗ рдкрд╛рд╣рддрд╛ рдпреЗрдИрд▓.
  4. рддреБрдордЪреНрдпрд╛рдХрдбреЗ DBMS рдЖрдгрд┐ рдЕрдВрддрд┐рдо рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╡реЗрдЧрд│реЗ рдирд╕рд▓реНрдпрд╛рд╕ SSL рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛; рддреЗ рд╡реЗрдЧрд│реНрдпрд╛ VLAN рдордзреНрдпреЗ рдирд╛рд╣реА. рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рдЧреНрд░рд╛рд╣рдХ рдЖрдгрд┐ рдбреАрдмреАрдПрдордПрд╕ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рдЪреЕрдиреЗрд▓рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреЗ рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╕рд╛рдзрдиреЗ рдЦреБрд▓реНрдпрд╛ рд╕реНрддреНрд░реЛрддрд╛рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд.

рдпрд╛рдЪрд╛ DBMS рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдХрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдИрд▓?

SSL рдЪрд╛ CPU рд▓реЛрдбрд╡рд░ рдХрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ, рд╡реЗрд│ рд╡рд╛рдврд╡рддреЛ рдЖрдгрд┐ TPS рдХрдореА рд╣реЛрддреЛ рдЖрдгрд┐ рддреБрдореНрд╣реА рддреЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реНрдпрд╛рд╕ рддреЗ рдЦреВрдк рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░реЗрд▓ рдХрд╛ рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА PostgreSQL рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ рдпрд╛.

pgbench рд╡рд╛рдкрд░реВрди PostgreSQL рд▓реЛрдб рдХрд░рдгреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕реЛрдкрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрд╣реЗ. рд╣реЗ рдЖрджреЗрд╢рд╛рдВрдЪрд╛ рдПрдХрдЪ рдХреНрд░рдо рд╡рд╛рд░рдВрд╡рд╛рд░, рд╢рдХреНрдпрддреЛ рд╕рдорд╛рдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рддреНрд░рд╛рдВрдордзреНрдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдирдВрддрд░ рд╕рд░рд╛рд╕рд░реА рд╡реНрдпрд╡рд╣рд╛рд░ рджрд░рд╛рдЪреА рдЧрдгрдирд╛ рдХрд░рддреЗ.

SSL рд╢рд┐рд╡рд╛рдп рдЖрдгрд┐ SSL рд╡рд╛рдкрд░реВрди 1 рдЪрд╛рдЪрдгреА - рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рд╕рд╛рдареА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ:

pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require 
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"

vs

pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"

SSL рд╢рд┐рд╡рд╛рдп рдЖрдгрд┐ SSL рд╡рд╛рдкрд░реВрди 2 рдЪрд╛рдЪрдгреА - рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХрд╛рдЪ рдХрдиреЗрдХреНрд╢рдирдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд:

pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"

vs

pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"

рдЗрддрд░ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ:

scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000

рдЪрд╛рдЪрдгреА рдирд┐рдХрд╛рд▓:

 
SSL рдирд╛рд╣реА
SSL

рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рд╕рд╛рдареА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ

рд╡рд┐рд▓рдВрдм рд╕рд░рд╛рд╕рд░реА
171.915 рдорд┐рд╕реЗ
187.695 рдорд┐рд╕реЗ

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╣ tps
58.168112
53.278062

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╡рдЧрд│реВрди tps
64.084546
58.725846

рд╕реАрдкреАрдпреВ
24%
28%

рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХрд╛рдЪ рдХрдиреЗрдХреНрд╢рдирдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд

рд╡рд┐рд▓рдВрдм рд╕рд░рд╛рд╕рд░реА
6.722 рдорд┐рд╕реЗ
6.342 рдорд┐рд╕реЗ

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╣ tps
1587.657278
1576.792883

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╡рдЧрд│реВрди tps
1588.380574
1577.694766

рд╕реАрдкреАрдпреВ
17%
21%

рд╣рд▓рдХреНрдпрд╛ рднрд╛рд░рд╛рдВрд╡рд░, SSL рдЪрд╛ рдкреНрд░рднрд╛рд╡ рдореЛрдЬрдорд╛рдк рддреНрд░реБрдЯреАрд╢реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрддреЛ. рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЪреЗ рдкреНрд░рдорд╛рдг рдЦреВрдк рдореЛрдареЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдкрд░рд┐рд╕реНрдерд┐рддреА рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддреЗ. рдЬрд░ рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рд╕рд╛рдареА рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ (рд╣реЗ рджреБрд░реНрдорд┐рд│ рдЖрд╣реЗ, рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХреЗрд▓реЗ рдЬрд╛рддреЗ), рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдХрдиреЗрдХреНрд╢рди/рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди рдЖрд╣реЗрдд, рдкрд░рд┐рдгрд╛рдо рдереЛрдбрд╛ рдореЛрдард╛ рдЕрд╕реВ рд╢рдХрддреЛ. рдореНрд╣рдгрдЬреЗрдЪ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрдореА рд╣реЛрдгреНрдпрд╛рдЪреЗ рдзреЛрдХреЗ рдЕрд╕реВ рд╢рдХрддрд╛рдд, рддрдерд╛рдкрд┐, рдлрд░рдХ рдЗрддрдХрд╛ рдореЛрдард╛ рдирд╛рд╣реА рдХреА рд╕рдВрд░рдХреНрд╖рдгрд╛рдЪрд╛ рд╡рд╛рдкрд░ рди рдХрд░рдгреЗ.

рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рддреБрдореНрд╣реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдбреНрд╕рдЪреА рддреБрд▓рдирд╛ рдХреЗрд▓реНрдпрд╛рд╕ рдПрдХ рдордЬрдмреВрдд рдлрд░рдХ рдЖрд╣реЗ: рддреБрдореНрд╣реА рдПрдХрд╛рдЪ рд╕рддреНрд░рд╛рдд рдХрд┐рдВрд╡рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рддреНрд░рд╛рдВрдордзреНрдпреЗ рдХрд╛рдо рдХрд░рдд рдЖрд╣рд╛рдд. рд╣реЗ рд╕рдордЬрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ: рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрд╕рд╛рдзрдиреЗ рдЦрд░реНрдЪ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд.

рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдЯреНрд░рд╕реНрдЯ рдореЛрдбрдордзреНрдпреЗ Zabbix рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ рддреЗрд╡реНрд╣рд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдХреЗрд╕ рд╣реЛрддреА, рдореНрд╣рдгрдЬреЗ, md5 рддрдкрд╛рд╕рд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реА, рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╡реНрд╣рддреА. рддреНрдпрд╛рдирдВрддрд░ рдЧреНрд░рд╛рд╣рдХрд╛рдиреЗ md5 рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ. рдпрд╛рдореБрд│реЗ CPU рд╡рд░ рдореЛрдард╛ рднрд╛рд░ рдкрдбрд▓рд╛ рдЖрдгрд┐ рдХрд╛рдордЧрд┐рд░реА рдХрдореА рдЭрд╛рд▓реА. рдЖрдореНрд╣реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдЪреЗ рдорд╛рд░реНрдЧ рд╢реЛрдзреВ рд▓рд╛рдЧрд▓реЛ. рд╕рдорд╕реНрдпреЗрд╡рд░реАрд▓ рд╕рдВрднрд╛рд╡реНрдп рдЙрдкрд╛рдпрд╛рдВрдкреИрдХреА рдПрдХ рдореНрд╣рдгрдЬреЗ рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рд░реНрдмрдВрдз рд▓рд╛рдЧреВ рдХрд░рдгреЗ, DBMS рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ VLAN рдмрдирд╡рдгреЗ, рдХреЛрдг рдХреБрдареВрди рдХрдиреЗрдХреНрдЯ рд╣реЛрдд рдЖрд╣реЗ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЬреЛрдбрд╛ рдЖрдгрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛рдвреВрди рдЯрд╛рдХрд╛. рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд░рддрд╛рдирд╛ рдЦрд░реНрдЪ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рджреЗрдЦреАрд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдВрдЪрд╛ рд╡рд╛рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рддреЛ рдЖрдгрд┐ DBMS рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░ (рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░) рдЪреА рд╕рдВрдЧрдгрдХреАрдп рд╢рдХреНрддреА рдбрд┐рдЭрд╛рдЗрди рдХрд░рддрд╛рдирд╛ рд╣реЗ рдШрдЯрдХ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдирд┐рд╖реНрдХрд░реНрд╖: рдЕрдиреЗрдХ рдЙрдкрд╛рдпрд╛рдВрдордзреНрдпреЗ, рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рддреАрд▓ рд▓рд╣рд╛рди рдмрд╛рд░рдХрд╛рд╡реЗ рджреЗрдЦреАрд▓ рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдкрд░рд┐рдгрд╛рдо рдХрд░реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рд╣реЗ рдЙрддреНрдкрд╛рджрдирд╛рдд рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рддреЗрд╡реНрд╣рд╛рдЪ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреЗ рддреЗрд╡реНрд╣рд╛ рддреЗ рд╡рд╛рдИрдЯ рдЕрд╕рддреЗ.

рдХреГрддреА рдСрдбрд┐рдЯ

рдСрдбрд┐рдЯ рдХреЗрд╡рд│ рдбреАрдмреАрдПрдордПрд╕ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА. рдСрдбрд┐рдЯ рдореНрд╣рдгрдЬреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рдХрд╛рдп рдШрдбрдд рдЖрд╣реЗ рдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рдгреЗ. рд╣реЗ рдПрдХрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╛рдпрд░рд╡реЙрд▓ рдХрд┐рдВрд╡рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЕрд╕реВ рд╢рдХрддреЗ рдЬреНрдпрд╛рд╡рд░ DBMS рдмрд╛рдВрдзрд▓реЗ рдЖрд╣реЗ.

рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭ рд▓реЗрд╡реНрд╣рд▓ рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗ рдСрдбрд┐рдЯрд┐рдВрдЧрд╕рд╣ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдУрдкрди рд╕реЛрд░реНрд╕рдордзреНрдпреЗ - рдиреЗрд╣рдореАрдЪ рдирд╛рд╣реА. PostgreSQL рдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ:

  • рдбреАрдлреЙрд▓реНрдЯ рд▓реЙрдЧ - рдЕрдВрдЧрднреВрдд рд▓реЙрдЧрд┐рдВрдЧ;
  • рд╡рд┐рд╕реНрддрд╛рд░: pgaudit - рдЬрд░ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ рд▓реЙрдЧрд┐рдВрдЧ рдкреБрд░реЗрд╕реЗ рдирд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рдХрд╛рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгрд╛рд▒реНрдпрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

рд╡реНрд╣рд┐рдбрд┐рдУрдордзреАрд▓ рдЕрд╣рд╡рд╛рд▓рд╛рдд рдЬреЛрдбрдгреЗ:

"рдореВрд▓рднреВрдд рд╡рд┐рдзрд╛рди рд▓реЙрдЧрд┐рдВрдЧ рд╣реЗ log_statement = all рд╕рд╣ рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рд╕реБрд╡рд┐рдзреЗрджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рд╣реЗ рдирд┐рд░реАрдХреНрд╖рдг рдЖрдгрд┐ рдЗрддрд░ рд╡рд╛рдкрд░рд╛рдВрд╕рд╛рдареА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕рд╛рдорд╛рдиреНрдпрдд: рдСрдбрд┐рдЯрд┐рдВрдЧрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рддрдкрд╢реАрд▓рд╛рдВрдЪреА рдкрд╛рддрд│реА рдкреНрд░рджрд╛рди рдХрд░рдд рдирд╛рд╣реА.

рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдпрд╛рджреА рдЕрд╕рдгреЗ рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реА.

рдСрдбрд┐рдЯрд░рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд╛рдиреЗ рд╢реЛрдзрдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЕрд╕рд╛рд╡реЗ.

рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдиреЗ рдХрд╛рдп рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рддреЗ рджрд░реНрд╢рд╡рд┐рддреЗ, рддрд░ pgAudit рдбреЗрдЯрд╛рдмреЗрд╕рдиреЗ рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░ рдХрд╛рдп рдШрдбрд▓реЗ рдпрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдСрдбрд┐рдЯрд░рд▓рд╛ рд╣реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рд░рдгреА рдХрд╛рдЧрджреЛрдкрддреНрд░реА рджреЗрдЦрднрд╛рд▓ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.

рд╣реЗ рдореВрд▓рднреВрдд рдСрдбрд┐рдЯрд┐рдВрдЧ рдЖрдгрд┐ grep рд╕рд╣ рдПрдХ рд╕рд╛рдзреЗ рдХрд╛рд░реНрдп рдЕрд╕рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ рд╡рд╛рдЯреВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА (рд╣реЗрддреВрдкреВрд░реНрд╡рдХ рдЧреЛрдВрдзрд│рд╛рдд рдЯрд╛рдХрдгрд╛рд░реЗ) рдЙрджрд╛рд╣рд░рдг рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЕрд╕реЗрд▓ рддрд░:

рдХрд░рд╛$$
рд╕реБрд░реВ
'рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рд╛' рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛ || 'ant_table(id int)';
END$$;

рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рджреЗрдИрд▓:

LOG: рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ: DO $$
рд╕реБрд░реВ
'рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рд╛' рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛ || 'ant_table(id int)';
END$$;

рдЕрд╕реЗ рджрд┐рд╕реВрди рдпреЗрддреЗ рдХреА рдЖрд╡рдбреАрдЪреЗ рд╕рд╛рд░рдгреА рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдХреЛрдб рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реВ рд╢рдХрддреЗ рдЬреЗрдереЗ рдЯреЗрдмрд▓ рдбрд╛рдпрдиреЕрдорд┐рдХрд░рд┐рддреНрдпрд╛ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

рд╣реЗ рдЖрджрд░реНрд╢ рдирд╛рд╣реА, рдХрд╛рд░рдг рдлрдХреНрдд рдЯреЗрдмрд▓рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдиреЗ рд╢реЛрдзрдгреЗ рд╢реНрд░реЗрдпрд╕реНрдХрд░ рдЕрд╕реЗрд▓.

рдЗрдереЗрдЪ pgAudit рдЙрдкрдпреЛрдЧреА рдкрдбрддреЗ.

рддреНрдпрд╛рдЪ рдЗрдирдкреБрдЯрд╕рд╛рдареА, рддреЗ рд▓реЙрдЧрдордзреНрдпреЗ рд╣реЗ рдЖрдЙрдЯрдкреБрдЯ рддрдпрд╛рд░ рдХрд░реЗрд▓:

рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рдг: рд╕рддреНрд░,33,1,рдХрд╛рд░реНрдп,рдХрд░реВ,,,"рдбреВ $$
рд╕реБрд░реВ
'рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рд╛' рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛ || 'ant_table(id int)';
рд╕рдорд╛рдкреНрдд $$;"
рдСрдбрд┐рдЯ: рд╕рддреНрд░,33,2,DDL,рддрдХреНрддрд╛ рддрдпрд╛рд░ рдХрд░рд╛,рдЯреЗрдмрд▓,рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ.рдорд╣рддреНрд╡рдкреВрд░реНрдг_рдЯреЗрдмрд▓,рддрдХреНрддрд╛ рддрдпрд╛рд░ рдХрд░рд╛ рдорд╣рддреНрд╡рд╛рдЪреЗ_рдЯреЗрдмрд▓ (рдЖрдпрдбреА INT)

рдХреЗрд╡рд│ DO рдмреНрд▓реЙрдХрдЪ рд▓реЙрдЧ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА, рддрд░ рд╡рд┐рдзрд╛рди рдкреНрд░рдХрд╛рд░, рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рдкреВрд░реНрдг рдирд╛рд╡рд╛рд╕рд╣ CREATE TABLE рдЪрд╛ рд╕рдВрдкреВрд░реНрдг рдордЬрдХреВрд░ рджреЗрдЦреАрд▓ рд╢реЛрдзрдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ.

SELECT рдЖрдгрд┐ DML рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рд▓реЙрдЧ рдХрд░рддрд╛рдирд╛, pgAudit рд▓рд╛ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯрдордзреНрдпреЗ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рд▓реЗрд╢рдирд╢рд┐рдкрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдПрдВрдЯреНрд░реА рд▓реЙрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рд░рдгреАрд▓рд╛ рд╕реНрдкрд░реНрд╢ рдХрд░рдгрд╛рд░реА рд╕рд░реНрд╡ рд╡рд┐рдзрд╛рдиреЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдкрд╛рд░реНрд╕рд┐рдВрдЧрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА(*) ┬╗.

рдпрд╛рдЪрд╛ DBMS рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдХрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдИрд▓?

рдкреВрд░реНрдг рдСрдбрд┐рдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЪрд╛рдЪрдгреНрдпрд╛ рдЪрд╛рд▓рд╡реВ рдЖрдгрд┐ PostgreSQL рдХрд╛рдордЧрд┐рд░реАрдЪреЗ рдХрд╛рдп рд╣реЛрддреЗ рддреЗ рдкрд╛рд╣реВ. рд╕рд░реНрд╡ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╛рдареА рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реВрдпрд╛.

рдЖрдореНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЬрд╡рд│рдЬрд╡рд│ рдХрд╛рд╣реАрд╣реА рдмрджрд▓рдд рдирд╛рд╣реА, рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдбреАрдмрдЧ 5 рдореЛрдб рдЪрд╛рд▓реВ рдХрд░рдгреЗ.

postgresql.conf

log_destination = 'stderr'
рд▓реЙрдЧрд┐рдВрдЧ_рдХрд▓реЗрдХреНрдЯрд░ = рдЪрд╛рд▓реВ
log_truncate_on_rotation = рдЪрд╛рд▓реВ
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = debug5
log_min_error_statement = debug5
log_min_duration_statement = 0
debug_print_parse = рдЪрд╛рд▓реВ
debug_print_rewritten = рдЪрд╛рд▓реВ
debug_print_plan = рдЪрд╛рд▓реВ
debug_pretty_print = рдЪрд╛рд▓реВ
log_checkpoints = рдЪрд╛рд▓реВ
log_connections = рдЪрд╛рд▓реВ
log_disconnections = рдЪрд╛рд▓реВ
log_duration = рдЪрд╛рд▓реВ
log_hostname = рдЪрд╛рд▓реВ
log_lock_wait = рдЪрд╛рд▓реВ
log_replication_commands = рдЪрд╛рд▓реВ
log_temp_files = 0
log_timezone = 'рдпреБрд░реЛрдк/рдореЙрд╕реНрдХреЛ'

1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD рдЪреНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ PostgreSQL DBMS рд╡рд░, рдЖрдореНрд╣реА рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рддреАрди рд▓реЛрдб рдЪрд╛рдЪрдгреНрдпрд╛ рдШреЗрддреЛ:

$ pgbench -p 3389 -U postgres -i -s 150 benchmark
$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark
$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmark

рдЪрд╛рдЪрдгреА рдирд┐рдХрд╛рд▓:

рд▓реЙрдЧрд┐рдВрдЧ рдирд╛рд╣реА
рд▓реЙрдЧрд┐рдВрдЧ рд╕рд╣

рдПрдХреВрдг рдбреЗрдЯрд╛рдмреЗрд╕ рднрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│
43,74 рд╕реЗрдХрдВрдж
53,23 рд╕реЗрдХрдВрдж

рд░реЕрдо
24%
40%

рд╕реАрдкреАрдпреВ
72%
91%

рдЪрд╛рдЪрдгреА рез (релреж рдХрдиреЗрдХреНрд╢рди)

10 рдорд┐рдирд┐рдЯрд╛рдВрдд рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛
74169
32445

рд╡реНрдпрд╡рд╣рд╛рд░/рд╕реЗ
123
54

рд╕рд░рд╛рд╕рд░реА рд╡рд┐рд▓рдВрдм
405 рдорд┐рд╕реЗ
925 рдорд┐рд╕реЗ

рдЪрд╛рдЪрдгреА 2 (рд╢рдХреНрдп 150 рд╕рд╣ 100 рдХрдиреЗрдХреНрд╢рди)

10 рдорд┐рдирд┐рдЯрд╛рдВрдд рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛
81727
31429

рд╡реНрдпрд╡рд╣рд╛рд░/рд╕реЗ
136
52

рд╕рд░рд╛рд╕рд░реА рд╡рд┐рд▓рдВрдм
550 рдорд┐рд╕реЗ
1432 рдорд┐рд╕реЗ

рдЖрдХрд╛рд░рд╛рдВрдмрджреНрджрд▓

DB рдЖрдХрд╛рд░
2251 рдПрдордмреА
2262 рдПрдордмреА

рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЙрдЧ рдЖрдХрд╛рд░
0 рдПрдордмреА
4587 рдПрдордмреА

рддрд│ рдУрд│: рд╕рдВрдкреВрд░реНрдг рдСрдбрд┐рдЯ рдлрд╛рд░ рдЪрд╛рдВрдЧрд▓реЗ рдирд╛рд╣реА. рдСрдбрд┐рдЯрдордзреАрд▓ рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдбреЗрдЯрд╛рдЗрддрдХрд╛ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рд╣реВрдирд╣реА рдореЛрдард╛ рдЕрд╕реЗрд▓. DBMS рд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрдгрд╛рд░реЗ рд▓реЙрдЧрд┐рдВрдЧрдЪреЗ рдкреНрд░рдорд╛рдг рд╣реА рдЙрддреНрдкрд╛рджрдирд╛рддреАрд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ.

рдЪрд▓рд╛ рдЗрддрд░ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдкрд╛рд╣реВ:

  • рд╡реЗрдЧ рдЬрд╛рд╕реНрдд рдмрджрд▓рдд рдирд╛рд╣реА: рд▓реЙрдЧрд┐рдВрдЧ рди рдХрд░рддрд╛ - 43,74 рд╕реЗрдХрдВрдж, рд▓реЙрдЧрд┐рдВрдЧрд╕рд╣ - 53,23 рд╕реЗрдХрдВрдж.
  • RAM рдЖрдгрд┐ CPU рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рд╕ рддреНрд░рд╛рд╕ рд╣реЛрдИрд▓ рдХрд╛рд░рдг рддреБрдореНрд╣рд╛рд▓рд╛ рдСрдбрд┐рдЯ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рд╣реЗ рдЙрддреНрдкрд╛рджрдХрддреЗрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рдгреАрдп рдЖрд╣реЗ.

рдХрдиреЗрдХреНрд╢рдирдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврдд рдЕрд╕рддрд╛рдирд╛, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХрдкрдгреЗ, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдХрд┐рдВрдЪрд┐рдд рдЦрд░рд╛рдм рд╣реЛрдИрд▓.

рдСрдбрд┐рдЯрд╕рд╣ рдХреЙрд░реНрдкреЛрд░реЗрд╢рдирдордзреНрдпреЗ рд╣реЗ рдЖрдгрдЦреА рдХрдареАрдг рдЖрд╣реЗ:

  • рднрд░рдкреВрд░ рдбреЗрдЯрд╛ рдЖрд╣реЗ;
  • рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗрд╡рд│ SIEM рдордзреАрд▓ syslog рджреНрд╡рд╛рд░реЗрдЪ рдирд╡реНрд╣реЗ рддрд░ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ: syslog рд▓рд╛ рдХрд╛рд╣реА рдШрдбрд▓реНрдпрд╛рд╕, рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдЬрд╡рд│ рдПрдХ рдлрд╛рдЗрд▓ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдЬрддрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ;
  • рдСрдбрд┐рдЯрд┐рдВрдЧрд╕рд╛рдареА, I/O рдбрд┐рд╕реНрдХрд╡рд░ рд╡рд╛рдпрд╛ рдЬрд╛рдК рдирдпреЗ рдореНрд╣рдгреВрди рд╕реНрд╡рддрдВрддреНрд░ рд╢реЗрд▓реНрдл рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдХрд╛рд░рдг рддреЗ рдЦреВрдк рдЬрд╛рдЧрд╛ рдШреЗрддреЗ;
  • рдЕрд╕реЗ рдШрдбрддреЗ рдХреА рдорд╛рд╣рд┐рддреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░реНрдордЪрд╛рд░реНрдпрд╛рдВрдирд╛ рд╕рд░реНрд╡рддреНрд░ GOST рдорд╛рдирдХрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ, рддреНрдпрд╛рдВрдирд╛ рд░рд╛рдЬреНрдп рдУрд│рдЦ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ.

рдбреЗрдЯрд╛ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд

рдбреЗрдЯрд╛рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ DBMS рдЖрдгрд┐ рдУрдкрди рд╕реЛрд░реНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдкрд╛рд╣реВ рдпрд╛.

рдЖрдкрдг рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрд╛рдп рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛:

  1. рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкрджреНрдзрддреА рдЖрдгрд┐ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ (рд░реЕрдкрд┐рдВрдЧ) - рдореНрд╣рдгрдЬреЗ, рд╡рд╛рдЪрдиреАрдп рдХреЛрдб рд╡рд╛рдЪрдгреНрдпрд╛рдпреЛрдЧреНрдп рдирд╕рдгрд╛рд░реА рд╕реНрд╡рддрдВрддреНрд░ рд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдЙрдкрдпреБрдХреНрддрддрд╛. рдЦрд░реЗ рдЖрд╣реЗ, рдордЧ рддреЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рдкрд░рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА. рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдХрдзреАрдХрдзреА рдбреАрдмреАрдПрдордПрд╕рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЛ - рдкрд░рд╡рд╛рдирд╛ рдкреНрд░рддрд┐рдмрдВрдз рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХреГрддрддрд╛ рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рдХрд╛рд░реНрдп рд╕реНрддрд░рд╛рд╡рд░ рддрдВрддреЛрддрдВрдд рдХреВрдЯрдмрджреНрдз рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
  2. рдкрдВрдХреНрддреАрдВрджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛рдЪреА рджреГрд╢реНрдпрдорд╛рдирддрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреЗ (RLS) рдореНрд╣рдгрдЬреЗ рдЬреЗрд╡реНрд╣рд╛ рднрд┐рдиреНрди рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдПрдХ рд╕рд╛рд░рдгреА рдкрд╛рд╣рддрд╛рдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдордзреАрд▓ рдкрдВрдХреНрддреАрдВрдЪреА рднрд┐рдиреНрди рд░рдЪрдирд╛, рдореНрд╣рдгрдЬреЗ, рдкрдВрдХреНрддреА рд╕реНрддрд░рд╛рд╡рд░ рдПрдЦрд╛рджреНрдпрд╛рд▓рд╛ рдХрд╛рд╣реАрддрд░реА рджрд╛рдЦрд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.
  3. рдкреНрд░рджрд░реНрд╢рд┐рдд рдбреЗрдЯрд╛ (рдорд╛рд╕реНрдХрд┐рдВрдЧ) рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдгреЗ рдореНрд╣рдгрдЬреЗ рдЬреЗрд╡реНрд╣рд╛ рд╕рд╛рд░рдгреАрдЪреНрдпрд╛ рдПрдХрд╛ рд╕реНрддрдВрднрд╛рддреАрд▓ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдбреЗрдЯрд╛ рдХрд┐рдВрд╡рд╛ рдлрдХреНрдд рддрд╛рд░рд╛рдВрдХрди рдкрд╛рд╣рддрд╛рдд, рдореНрд╣рдгрдЬреЗрдЪ рдХрд╛рд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдорд╛рд╣рд┐рддреА рдмрдВрдж рдХреЗрд▓реА рдЬрд╛рддреЗ. рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╣реЗ рдард░рд╡рддреЗ рдХреА рдХреЛрдгрддреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рд╡реЗрд╢ рдкрд╛рддрд│реАрдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рдХрд╛рдп рджрд╛рдЦрд╡рд▓реЗ рдЬрд╛рддреЗ.
  4. рд╕реБрд░рдХреНрд╖рд╛ рдбреАрдмреАрдП/рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдбреАрдмреАрдП/рдбреАрдмреАрдП рдЕтАНреЕрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╣реЗ рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗрдЪ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдгреНрдпрд╛рдмрд╛рдмрдд рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗрдЪ рдорд╛рд╣рд┐рддреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░реНрдордЪрд╛рд▒реНрдпрд╛рдВрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдЖрдгрд┐ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдЕреЕрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░рдкрд╛рд╕реВрди рд╡реЗрдЧрд│реЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдУрдкрди рд╕реЛрд░реНрд╕рдордзреНрдпреЗ рдЕрд╢реА рдХрд╛рд╣реА рддрдВрддреНрд░рдЬреНрдЮрд╛рдиреЗ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ DBMS рдордзреНрдпреЗ рддреА рднрд░рдкреВрд░ рдЖрд╣реЗрдд. рдЬреЗрд╡реНрд╣рд╛ рд╕реНрд╡рддрдГ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреНрд░рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реЗ рдмрд░реЗрдЪ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЕрд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ.
  5. рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░рд╛рд╡рд░ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдгреЗ. рдЖрдкрдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдВрдирд╛ рдЕрдзрд┐рдХрд╛рд░ рдЖрдгрд┐ рдкреНрд░рд╡реЗрд╢ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрдК рд╢рдХрддрд╛ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢рд╛рд╕рдХрд╛рд╕ рдлрдХреНрдд рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЕрд╕реЗрд▓.
  6. рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╡реЗрд╢ рдЖрдгрд┐ рдореЗрдорд░реА рдХреНрд▓рд┐рдЕрд░рд┐рдВрдЧ - рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреНрд╡рдЪрд┐рддрдЪ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
  7. рдереЗрдЯ рдбреАрдмреАрдПрдордПрд╕ рд╡рд░реВрди рдПрдВрдб-рдЯреВ-рдПрдВрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╣реЗ рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рд╕рд╣ рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд╛рдЗрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЖрд╣реЗ.
  8. рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрддрдВрднреАрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореНрд╣рдгрдЬреЗ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рдПрдХрд▓ рд╕реНрддрдВрдн рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд░рдгрд╛рд░реА рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рддрд╛.

рдпрд╛рдЪрд╛ DBMS рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдХрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ?

PostgreSQL рдордзреАрд▓ рд╕реНрддрдВрднреАрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдирдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ. рдПрдХ pgcrypto рдореЙрдбреНрдпреВрд▓ рдЖрд╣реЗ, рддреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕реНрд╡рд░реВрдкрд╛рдд рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдлреАрд▓реНрдб рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдХреЗрд╡рд│ рдХрд╛рд╣реА рдбреЗрдЯрд╛ рдореМрд▓реНрдпрд╡рд╛рди рдЕрд╕рддреЛ рддреЗрд╡реНрд╣рд╛ рд╣реЗ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ. рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдлреАрд▓реНрдб рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА, рдХреНрд▓рд╛рдпрдВрдЯ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЛ, рд╕рд░реНрд╡реНрд╣рд░ рдбреЗрдЯрд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдкрд░рдд рдХрд░рддреЛ. рдХреА рд╢рд┐рд╡рд╛рдп, рдХреЛрдгреАрд╣реА рдЖрдкрд▓реНрдпрд╛ рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд╣реАрд╣реА рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.

рдЪрд▓рд╛ pgcrypto рд╕рд╣ рдЪрд╛рдЪрдгреА рдХрд░реВрдпрд╛. рдЪрд▓рд╛ рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдЖрдгрд┐ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛рд╕рд╣ рдПрдХ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░реВрдпрд╛. рдЦрд╛рд▓реА рд╕рд╛рд░рдгреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдЬреНрдЮрд╛ рдЖрд╣реЗрдд, рдкрд╣рд┐рд▓реНрдпрд╛ рдУрд│реАрдд рдПрдХ рдЙрдкрдпреБрдХреНрдд рдХрдорд╛рдВрдб рдЖрд╣реЗ - рдбреАрдмреАрдПрдордПрд╕ рдиреЛрдВрджрдгреАрд╕рд╣ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрд╡рддрдГ рддрдпрд╛рд░ рдХрд░рдгреЗ:

CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));

рдкреБрдвреЗ, рдкреНрд░рддреНрдпреЗрдХ рдЯреЗрдмрд▓рдордзреВрди рдбреЗрдЯрд╛ рдирдореБрдирд╛ рдмрдирд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рдЖрдгрд┐ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рд╡реЗрд│рд╛ рдкрд╛рд╣реВ.

рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдлрдВрдХреНрд╢рдирд╢рд┐рд╡рд╛рдп рдЯреЗрдмрд▓рдордзреВрди рдирд┐рд╡рдбрдгреЗ:

psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txt

рд╕реНрдЯреЙрдкрд╡реЙрдЪ рдЪрд╛рд▓реВ рдЖрд╣реЗ.

  рдЖрдпрдбреА | рдордЬрдХреВрд░1 | рдордЬрдХреВрд░2
тАФтАФ+тАФтАФ-+тАФтАФ-
1 | 1     | рез
2 | 2     | рез
3 | 3     | рез
...
репрепрен | репрепрен | репрепрен
репрепрен | репрепрен | репрепрен
репрепрен | репрепрен | репрепрен
1000 | 1000 | 1000
(1000 рдУрд│реА)

рд╡реЗрд│: 1,386 ms

рдПрдирдХреНрд░рд┐рдкреНрд╢рди рдлрдВрдХреНрд╢рдирд╕рд╣ рдЯреЗрдмрд▓рдордзреВрди рдирд┐рд╡рдб:

psql -c "timing" -c "select id, decrypt(text1, 'key'::bytea, 'bf'),
decrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;"
"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable" > 2.txt

рд╕реНрдЯреЙрдкрд╡реЙрдЪ рдЪрд╛рд▓реВ рдЖрд╣реЗ.

  рдЖрдпрдбреА | рдбрд┐рдХреНрд░рд┐рдкреНрдЯ | рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рд╛
тАФтАФ+тАФтАФтАФтАФтАФтАФ+тАФтАФтАФтАФ
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000 рдУрд│реА)

рд╡реЗрд│: 50,203 ms

рдЪрд╛рдЪрдгреА рдирд┐рдХрд╛рд▓:

 
рдПрдирдХреНрд░рд┐рдкреНрд╢рдирд╢рд┐рд╡рд╛рдп
Pgcrypto (рдбрд┐рдХреНрд░рд┐рдкреНрдЯ)

рдирдореБрдирд╛ 1000 рдкрдВрдХреНрддреА
1,386 рдорд┐рд╕реЗ
50,203 рдорд┐рд╕реЗ

рд╕реАрдкреАрдпреВ
15%
35%

рд░реЕрдо
 
+ 5%

рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдирдЪрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдореЛрдард╛ рдкреНрд░рднрд╛рд╡ рдкрдбрддреЛ. рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛рдЪреНрдпрд╛ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА (рдЖрдгрд┐ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рд╕рд╣рд╕рд╛ рддреБрдордЪреНрдпрд╛ рддрд░реНрдХрд╛рдордзреНрдпреЗ рдЧреБрдВрдбрд╛рд│рд▓реЗрд▓реЗ рдЕрд╕рддреЗ) рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╡реЗрд│ рд╡рд╛рдврд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдпреЗрддреЗ. рдореНрд╣рдгрдЬреЗрдЪ, рдХрд╛рд╣реА рдбреЗрдЯрд╛ рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд╕реНрддрдВрдн рдХреВрдЯрдмрджреНрдз рдХрд░рдгреНрдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рдШрдЯ рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рднрд░рд▓реЗрд▓реА рдЖрд╣реЗ.

рддрдерд╛рдкрд┐, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╣реА рдЪрд╛рдВрджреАрдЪреА рдмреБрд▓реЗрдЯ рдирд╛рд╣реА рдЬреА рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ. рдбреЗрдЯрд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдЖрдгрд┐ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рдЖрдгрд┐ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕реНрдерд┐рдд рдЖрд╣реЗрдд. рдореНрд╣рдгреВрди, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреВрд░реНрдг рдкреНрд░рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрджреНрд╡рд╛рд░реЗ рдХрд│рд╛ рд░реЛрдЦрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЬрд╕реЗ рдХреА рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ.

рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдВрдкреВрд░реНрдг рд╕реНрддрдВрднрд╛рд╕рд╛рдареА рдПрдХ рдХреА рдЕрд╕рддреЗ (рдЬрд░реА рд╕рд░реНрд╡рд╛рдВрд╕рд╛рдареА рдирд╛рд╣реА, рдкрд░рдВрддреБ рдорд░реНрдпрд╛рджрд┐рдд рд╕рдВрдЪрд╛рдЪреНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА), рд╣реЗ рдиреЗрд╣рдореАрдЪ рдЪрд╛рдВрдЧрд▓реЗ рдЖрдгрд┐ рдпреЛрдЧреНрдп рдирд╕рддреЗ. рдореНрд╣рдгреВрдирдЪ рддреНрдпрд╛рдВрдиреА рдПрдВрдб-рдЯреВ-рдПрдВрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА, рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗ рддреНрдпрд╛рдВрдиреА рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдмрд╛рдЬреВрд▓рд╛ рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЖрдгрд┐ рддреЗрдЪ рдХреА-рд╡реЙрд▓реНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рджрд┐рд╕реВ рд▓рд╛рдЧрд▓реЗ - рдбреАрдмреАрдПрдордПрд╕ рд╡рд░ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рдгрд╛рд░реА рд╡реЗрдЧрд│реА рдЙрддреНрдкрд╛рджрдиреЗ рдмрд╛рдЬреВ

рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ DBMS: рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╛рдзрдиреЗ рдирд┐рд╡рдбрддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
MongoDB рдордзреНрдпреЗ рдЕрд╢рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдирдЪреЗ рдЙрджрд╛рд╣рд░рдг

рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЖрдгрд┐ рдореБрдХреНрдд рд╕реНрд░реЛрдд DBMS рдордзреНрдпреЗ рд╕реБрд░рдХреНрд╖рд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ

рдХрд╛рд░реНрдпреЗ
рдкреНрд░рдХрд╛рд░
рдкрд╛рд╕рд╡рд░реНрдб рдзреЛрд░рдг
рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рдг
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рдХрд╛рд░реНрдпреЗ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдгреЗ
рдЖрд░рдПрд▓рдПрд╕
рдПрдирдХреНрд░рд┐рдкреНрд╢рди

рдУрд░реЕрдХрд▓
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
+
+
+
+
+

рдПрдордПрд╕рдХреНрдпреВрдПрд▓
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
+
+
+
+
+

рдЬрддреЛрдмрд╛
рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ
+
+
+
+
рд╡рд┐рд╕реНрддрд╛рд░

рдкреЛрд╕реНрдЯрдЧреНрд░реЗ рдПрд╕рдХреНрдпреВрдПрд▓
рдлреБрдХрдЯ
рд╡рд┐рд╕реНрддрд╛рд░
рд╡рд┐рд╕реНрддрд╛рд░
-
+
рд╡рд┐рд╕реНрддрд╛рд░

рдореЛрдВрдЧреЛрдбреАрдмреА
рдлреБрдХрдЯ
-
+
-
-
рдлрдХреНрдд MongoDB Enterprise рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз

рд╕рд╛рд░рдгреА рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рдЦреВрдк рджреВрд░ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ: рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрддреНрдкрд╛рджрдирд╛рдВрдордзреНрдпреЗ, рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдмрд░реНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рд╕реЛрдбрд╡рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдореБрдХреНрдд рд╕реНрддреНрд░реЛрддрд╛рдордзреНрдпреЗ, рдирд┐рдпрдо рдореНрд╣рдгреВрди, рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдЕреЕрдб-рдСрди рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд, рдЕрдиреЗрдХ рдХрд╛рд░реНрдпреЗ рдЧрд╣рд╛рд│ рдЖрд╣реЗрдд. , рдХрдзреАрдХрдзреА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрддрд░реА рдЬреЛрдбрд╛рд╡реЗ рд▓рд╛рдЧрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкрд╛рд╕рд╡рд░реНрдб рдзреЛрд░рдгреЗ - PostgreSQL рдордзреНрдпреЗ рдмрд░реЗрдЪ рднрд┐рдиреНрди рд╡рд┐рд╕реНрддрд╛рд░ рдЖрд╣реЗрдд (1, 2, 3, 4, 5), рдЬреА рдкрд╛рд╕рд╡рд░реНрдб рдзреЛрд░рдгреЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрддрд╛рдд, рдкрд░рдВрддреБ, рдорд╛рдЭреНрдпрд╛ рдорддреЗ, рддреНрдпрд╛рдкреИрдХреА рдХреЛрдгрддреАрд╣реА рджреЗрд╢рд╛рдВрддрд░реНрдЧрдд рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡рд┐рднрд╛рдЧрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдЧрд░рдЬрд╛ рдкреВрд░реНрдг рдХрд░рдд рдирд╛рд╣реА.

рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рд╡рд╕реНрддреВ рдХреБрдареЗрд╣реА рдирд╕рд▓реНрдпрд╛рд╕ рдХрд╛рдп рдХрд░рд╛рд╡реЗ? рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ DBMS рд╡рд╛рдкрд░рд╛рдпрдЪрд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЧреНрд░рд╛рд╣рдХрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдХрд╛рд░реНрдпреЗ рдирд╛рд╣реАрдд.

рдордЧ рддреБрдореНрд╣реА рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдЬреЗ рднрд┐рдиреНрди DBMS рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Crypto DB рдХрд┐рдВрд╡рд╛ Garda DB. рдЬрд░ рдЖрдкрдг рджреЗрд╢рд╛рдВрддрд░реНрдЧрдд рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рдЙрдкрд╛рдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рдд рдЖрд╣реЛрдд, рддрд░ рддреНрдпрд╛рдВрдирд╛ рдУрдкрди рд╕реЛрд░реНрд╕рдкреЗрдХреНрд╖рд╛ GOSTs рдмрджреНрджрд▓ рдЪрд╛рдВрдЧрд▓реЗ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ.

рджреБрд╕рд░рд╛ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЬреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рд╕реНрд╡рддрдГ рд▓рд┐рд╣рд╛, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕ рдЖрдгрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рд╛. рдЦрд░реЗ рдЖрд╣реЗ, GOST рд╕рд╣ рддреЗ рдЕрдзрд┐рдХ рдХрдареАрдг рд╣реЛрдИрд▓. рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рддреБрдореНрд╣реА рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рд▓рдкрд╡реВ рд╢рдХрддрд╛, рддреЛ рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗ рдареЗрд╡реВ рд╢рдХрддрд╛, рдирдВрддрд░ рддреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░реВ рд╢рдХрддрд╛, рдЕрдЧрджреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░рд╛рд╡рд░. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЖрдкрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдд рдпрд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд╕реЗ рдХрд░рд╛рд▓ рдпрд╛рдЪрд╛ рддреНрд╡рд░рд┐рдд рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛. рдЖрдордЪреНрдпрд╛ рдорддреЗ, рд╣реЗ рдбреАрдмреАрдПрдордПрд╕ рд╕реНрддрд░рд╛рд╡рд░ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдХрд╛рд░рдг рддреЗ рдЬрд▓рдж рдХрд╛рд░реНрдп рдХрд░реЗрд▓.

рд╣рд╛ рдЕрд╣рд╡рд╛рд▓ рдкреНрд░рдердо рд╕рд╛рджрд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ @рдбреЗрдЯрд╛рдмреЗрд╕ рдореАрдЯрдЕрдк Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЛрд▓реНрдпреБрд╢рдиреНрд╕ рджреНрд╡рд╛рд░реЗ. рджрд┐рд╕рдд ╨▓╨╕╨┤╨╡╨╛ рдЗрддрд░ рдкрд░рдлреЙрд░реНрдордиреНрд╕ рдЖрдгрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдорд╡рд░реАрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдШреЛрд╖рдгрд╛рдВрдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреНрдпрд╛ Mail.ru рдЧреНрд░реБрдкрд╡рд░ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рдЖрд╕рдкрд╛рд╕.

рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЕрдЬреВрди рдХрд╛рдп рд╡рд╛рдЪрд╛рдпрдЪреЗ:

  1. Ceph рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд: MCS рдХреНрд▓рд╛рдЙрдб рдмреНрд▓реЙрдХ рд╕реНрдЯреЛрд░реЗрдЬ.
  2. рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╕рд╛ рдирд┐рд╡рдбрд╛рд╡рд╛ рдЬреЗрдгреЗрдХрд░реВрди рддреБрдореНрд╣рд╛рд▓рд╛ рдкреБрдиреНрд╣рд╛ рдирд┐рд╡рдб рдХрд░рд╛рд╡реА рд▓рд╛рдЧрдгрд╛рд░ рдирд╛рд╣реА.

рд╕реНрддреНрд░реЛрдд: www.habr.com

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