рд╢реЗрдпрд░рд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдЪреНрдЪ-рднрд╛рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЬрдВрдЧрд▓ рдореЗрдВ рдЗрддрдиреЗ рдЧрд╣рд░реЗ рдбреВрдмреЗ рд╣реБрдП рд╣реИрдВ рдХрд┐ рд╣рдо рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрдирд╛рдкрдиред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ = n рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╕рдордЭрдирд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рд╣реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░, рдмрд▓реНрдХрд┐, рдЬрдм рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдВрд╕рд╛рдзрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдо рд╣реЛрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рдореИрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрджрд┐ рдЖрдк рдХреИрд╕рдВрдбреНрд░рд╛ рдореЗрдВ рдЕрдкрдиреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗ рд░рд╣реЗ рдереЗ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди рд╣реЛред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреА рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рд▓реЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЬреНрдЮрд╛рди рдЗрд╕рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдорд╣рд╛рди рдФрд░ рднрдпрд╛рдирдХ рдЖрдВрджреНрд░реЗрдИ рдЕрдХреЛрдпреЛрдиреЛрд╡ ( рд╢реЛрдбрд╛рди ) рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рд╢рд╛рд░реНрдХрд┐рдВрдЧ рдЦрд░рд╛рдм рд╣реИ, рд╢рд╛рд░реНрдХрд┐рдВрдЧ рднреА рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИ , рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдЕрдВрджрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдХрд╛рдлреА рд╣рдж рддрдХ рджреБрд░реНрдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХрд╣рд╛рдиреА рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рд░реНрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реИрддрд╛рди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ - рдХреИрд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢рд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдирд╛ рд╣реИред

рдореБрд╣рд░реЛрдВ рдХреА рдлреЛрдЯреЛ (рднрд▓реЗ рд╣реА рд╡реЗ рдЧрд▓рддреА рд╕реЗ рдкрд┐рд▓реНрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдХрд▓реЗ) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

рд╢рд╛рд░реНрдкрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ?


рдпрджрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ Google рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рддрдерд╛рдХрдерд┐рдд рд╡рд┐рднрд╛рдЬрди рдФрд░ рддрдерд╛рдХрдерд┐рдд рд╢рд╛рд░реНрдХрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдПрдХ рдзреБрдВрдзрд▓реА рд╕реАрдорд╛ рд╣реИред рд╣рд░ рдХреЛрдИ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдХрд╣рддрд╛ рд╣реИред рдХреБрдЫ рд▓реЛрдЧ рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рднрд╛рдЬрди рдФрд░ рддреАрдХреНрд╖реНрдгрддрд╛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рддреАрдХреНрд╖реНрдгрддрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рднрд╛рдЬрди рд╣реИред

рдореБрдЭреЗ рдПрдХ рднреА рдкрд╛рд░рд┐рднрд╛рд╖рд┐рдХ рдорд╛рдирдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рд╕рдВрд╕реНрдерд╛рдкрдХ рдкрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдореЛрджрд┐рдд рд╣реЛ рдФрд░ рдЖрдИрдПрд╕рдУ рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реЛред рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ: рдФрд╕рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрди "рдЖрдзрд╛рд░ рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдХрд╛рдЯ рд░рд╣рд╛ рд╣реИ" рдПрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рддрд░реАрдХреЗ рд╕реЗред

  • рд▓рдВрдмрд╡рдд рд╡рд┐рднрд╛рдЬрди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 60 рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдХреБрдЫ рдмрд┐рд▓рд┐рдпрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд╛рд▓ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдРрд╕реА рдПрдХ рд╡рд┐рд╢рд╛рд▓ рддрд╛рд▓рд┐рдХрд╛ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо 2 рдЕрд░рдм рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде 60 рдХрдо рдХреЛрдИ рд╡рд┐рд╢рд╛рд▓ рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ - рдФрд░ рдпрд╣ рдПрдХ рдЕрдВрд╢рдХрд╛рд▓рд┐рдХ рдЖрдзрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╡рд┐рднрд╛рдЬрди (рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ) рд╣реИред
  • рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рднрд╛рдЬрди - рд╣рдо рд▓рд╛рдЗрди рдХреЛ рд▓рд╛рдЗрди рд╕реЗ рдХрд╛рдЯрддреЗ рд╣реИрдВ, рд╢рд╛рдпрдж рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдВрджрд░ред

рдпрд╣рд╛рдБ рдЕрдЬреАрдм рдХреНрд╖рдг рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╢рд╛рд░реНрдХрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИред рдЖрдк рдореБрдЭреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╢рд╛рд░реНрдХрд┐рдВрдЧ рдФрд░ рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рднрд╛рдЬрди рдПрдХ рд╣реА рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВред

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛рдХрд░рдг рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдЯреЛрд░ рд╣реИ, рддреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдЯрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, 2 рдмрд┐рд▓рд┐рдпрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдХреЛрдИ рднреА рдЖрдХрд╛рд░ рд╣реЛред рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЗ рдЕрдВрджрд░ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд╛рдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬрдЧрд╣реЛрдВ рдкрд░ рдмрдВрдбрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред


рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ ред

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

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рдореЗрдВ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреА рд╢рдмреНрджрд╛рд╡рд▓реА рд╕реЗ рдмрдВрдзреЗ рдмрд┐рдирд╛, рдПрдХ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╢рд╛рд░реНрдбрд┐рдВрдЧ рд╕рд┐рд░реНрдл рд▓рд╛рдЗрди-рджрд░-рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдФрд░ рдпрд╣реА рд╣реИ:

рд╕рд╛рдЭрд╛рдХрд░рдг (~ =, \ in ...) рдХреНрд╖реИрддрд┐рдЬ рд╡рд┐рднрд╛рдЬрди == рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред

рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 20 рдмрд┐рд▓рд┐рдпрди рдореЗрдВ 2 рдмрд┐рд▓рд┐рдпрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдзрд┐рдХ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрдИ рдХреЛрд░, рдХрдИ рдбрд┐рд╕реНрдХ рдпрд╛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднреМрддрд┐рдХ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ред

рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рд░ рд╢рд╛рд░реНрдЯ - рд╣рд░ рдбреЗрдЯрд╛ рд╢рддрдХ - рдХреЛ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд╣реАрдВред

INSERT INTO docs00 SELECT * FROM documents WHERE (id%16)=0 ... INSERT INTO docs15 SELECT * FROM documents WHERE (id%16)=15 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдХреЗ рдРрд╕реЗ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ MySQL рдкрд░ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдЯреЗрдмрд▓ рд╕реЗ, рдЖрдк рдЕрдкрдиреЗ рдмрд╣рд╛рджреБрд░ рд▓реИрдкрдЯреЙрдк рдкрд░ 16 рдЫреЛрдЯреЗ рдЯреЗрдмрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ, рдмрд┐рдирд╛ рд╕рд┐рдВрдЧрд▓ рд▓реИрдкрдЯреЙрдк рд╕реЗ тАЛтАЛрдкрд░реЗ, рдПрдХ рднреА рд╕реНрдХреАрдорд╛ рдирд╣реАрдВ, рдПрдХ рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ, рдЖрджрд┐ред рдЖрджрд┐ - рд╕рдм рдХреБрдЫ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рд░реНрдХ рд╣реИред

рдкрд┐рд▓реНрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░рдг рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ:

  • рдмреИрдВрдбрд╡рд┐рдбреНрде рдмрдврд╝ рд░рд╣реА рд╣реИред
  • рд▓реЗрдЯреЗрдВрд╕реА рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рдпрд╛рдиреА рдкреНрд░рддреНрдпреЗрдХ, рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдпрд╛ рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдкрд┐рд▓реНрд▓реЛрдВ рдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд▓рдЧрднрдЧ рдЙрд╕реА рд╕рдордп рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдкрд┐рд▓реНрд▓рд╛ рдЕрдХреЗрд▓рд╛ рдерд╛ред
  • рдпрд╛ рджреЛрдиреЛрдВ рдХрд┐, рдФрд░ рдПрдХ рдФрд░, рдФрд░ рдЕрднреА рднреА рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ (рдкреНрд░рддрд┐рдХреГрддрд┐)ред

рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреНрдпреЛрдВ? рдХрднреА-рдХрднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ - рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИрдВ - 1 {рдХреЛрд░ рджреНрд╡рд╛рд░рд╛ | рдбреНрд░рд╛рдЗрд╡ | рд╕рд░реНрд╡рд░ | ...}ред рдмрд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдпрд╣ рд╣реИ рдЗрд╕ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╛рдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпреЛрдВ рд╡рд┐рд▓рдВрдмрддрд╛? рдПрдХ рдХреЛрд░ рдкрд░, 2 рдЕрд░рдм рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ 20 рдЧреБрдард▓реА рдкрд░ 20 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 20 рдЧреБрдирд╛ рдзреАрдорд╛ рд╣реИ, рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдмрд╣реБрдд рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрдпреЛрдВ? рдпрд╛ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рд░реНрдХ рдХреА рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдВ - рдкреНрд░рддрд┐рдХреГрддрд┐ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред

"рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ" рдЗрд╕рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг


32 рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛ test.documents рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╢рд░реНрдд рддреАрдХреНрд╖реНрдгрддрд╛ рдХреЛ рдХрд╛рдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд▓рдЧрднрдЧ 2 рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ test.docs00, 01, 02, ..., 15 рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП 16 рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗред

 INSERT INTO docs00 SELECT * FROM documents WHERE (id%16)=0 ... INSERT INTO docs15 SELECT * FROM documents WHERE (id%16)=15 

рдХреНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ? рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдбреА рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдпрджрд┐ 1 рд╕реЗ 32 рд╕рдорд╛рд╡реЗрд╢реА рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2 рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрдВрдЧреЗ, рдЕрдиреНрдпрдерд╛ - рдирд╣реАрдВред

рд╣рдо рдпрд╣ рдХрд┐рд╕ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВред 16 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ 16 рдХреЛ "рдкрдХрдбрд╝" рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдордиреЗ рдХреНрдпрд╛ рдЖрд░рд╛рдо рдХрд┐рдпрд╛, рд╣рдо рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рд╕реНрдХ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ред

рдпрд╣ рд╕рдм, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕реНрд╡рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡рд┐рд╣рд┐рдд рдПрд╕рдХреНрдпреВрдПрд▓ рдорд╛рдирдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ (рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдорд╛рдирдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рд╢рд╛рдпрдж рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдХрд┐рд╕реА рднреА рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдорд╛рдирдХреАрдХреГрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рд╣реИ: рдкреНрд░рд┐рдп рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░, рдореБрдЭреЗ 32 рд╢рд╛рд░реНрдж рдмрдирд╛рдпреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ 4 рдбрд┐рд╕реНрдХ рдкрд░ рд░рдЦреЗрдВред " рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдорд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реЛрддрд╛ рд╣реИред PostgreSQL рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рд╣реИрдВ, MySQL MariaDB рдХреЗ рдкрд╛рд╕ рд╣реИ, Oracle рдиреЗ рдпрд╣ рд╕рдм рдмрд╣реБрдд рдкрд╣рд▓реЗ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдлрд┐рд░ рднреА, рдЕрдЧрд░ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдорд╛рдирдХ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╣рд╛рде рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ ред рдЬрд╣рд╛рдБ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдПрдХ рд╕рд░рд▓ рдЪрдпрди * рдерд╛ рдЬрд╣рд╛рдБ рдЖрдИрдбреА = 123, рдЕрдм 16 x рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ * рдбреЙрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рд╕реЗред рдФрд░ рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдордиреЗ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрджрд┐ рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХреА рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢реНрд░реЗрдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИред рдЕрдм (рдпрджрд┐, рдореИрдВ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореВрд░реНрдЦ рд╣реИрдВ, рдФрд░ рдорд╛рдирдХ рдХреЗ рднреАрддрд░ рд░рд╣рддреЗ рд╣реИрдВ), рддреЛ рдЗрди 16 рдЪрдпрди * FROM рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдЙрдореНрдореАрдж рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ?

  • рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рд░реИрдЦрд┐рдХред
  • рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ - рдЙрджрд╛рд╕реАрди, рдХреНрдпреЛрдВрдХрд┐ Amdahl рдХрд╛рдиреВрди ред
  • рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ - рд╢рд╛рдпрдж рд▓рдЧрднрдЧ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ, рд╢рд╛рдпрдж рдирд╣реАрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд╣реА рдЙрддреНрддрд░ рдЕрдЬреНрдЮрд╛рдд рд╣реИред рд╢реЗрд░рд┐рдВрдЧ рддрдХрдиреАрдХ рдХреЗ рдЪрддреБрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛, рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдкрд░-рд░реИрдЦрд┐рдХ рдЧрд┐рд░рд╛рд╡рдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреАрдмреАрдП рднреА рд▓рд╛рд▓-рдЧрд░реНрдо рдкреЛрдХрд░ рдХреЗ рд╕рд╛рде рдЪрд▓реЗрдВрдЧреЗред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдмрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ PostgreSQL shards = 16 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╣реА рд╣рдЯрд╛ рджрд┐рдпрд╛ - рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рд╣рдо рдпрд╣ рдХреИрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╢рд╛рд░реНрдХрд┐рдВрдЧ рд╕реЗ 32 рдЧреБрдирд╛ рддрдХ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ , рдЬреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред

рддреЗрдЬреА рд▓рд╛рдиреЗ рдпрд╛ рдзреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдкреНрд░рдпрд╛рд╕ рд╣рдореЗрд╢рд╛ рдХреНрд▓рд╛рд╕рд┐рдХреНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрд░рд╛рдо рдХрд░реЗрдВрдЧреЗ - рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рдЕрдорджрд╣рд▓ рдХрд╛рдиреВрди, рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХрд╛ рдХреЛрдИ рд╕рдЯреАрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрд╢рд╛ рдХреБрдЫ рд╕реБрд╕рдВрдЧрдд рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред

рдЕрдорджрд╣рд▓ рдХрд╛рдиреВрди


рд╣рдореЗрд╢рд╛ рдПрдХ рдХреНрд░рдордмрджреНрдз рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред

рд╣рдореЗрд╢рд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреНрд╡реЗрд░реА, рдХрдо рд╕реЗ рдХрдо рдкрд░рд┐рдгрд╛рдо рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЬреЛ рдЖрдк рдЧреНрд░рд╛рд╣рдХ рдХреЛ рднреЗрдЬрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рд░реНрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ, рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕реБрд╕рдВрдЧрдд рд╣реЛрддрд╛ рд╣реИред

рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЫреЛрдЯрд╛, рдмрд┐рд▓реНрдХреБрд▓ рдЕрджреГрд╢реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рд╢рд╛рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рддреЗ рд╣реИрдВ - рдЪрд▓реЛ рджрд░реЗрдВ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ - 64 рд░рд┐рдХреЙрд░реНрдб рд╕реЗ 4 рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЗ 16 рдЯреЗрдмрд▓ рддрдХ, рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдмреЗрд╢рдХ, рдЗрддрдиреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдФрд░ 86 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЦреБрд▓рд╛ рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВред

  • рдпрд╣ рдХреБрд▓ = рд╕реАрд░рд┐рдпрд▓ + рд╕рдорд╛рдирд╛рдВрддрд░ рдерд╛ ред рдЬрд╣рд╛рдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рдбреАрдмреА рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдХрд╛рдо рд╣реИрдВ, рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬ рд░рд╣рд╛ рд╣реИред
  • рдпрд╣ Total2 = Serial + Parallel / N + Xserial рдмрди рдЧрдпрд╛ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕рд╛рдорд╛рдиреНрдп рдЖрджреЗрд╢ BY, Xserial> 0ред

рдЗрд╕ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ Xserial рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕ рдбреЗрдЯрд╛ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:

  • рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЗрди 16 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдВ;
  • рдЦреБрд▓реА рдлрд╛рдЗрд▓реЗрдВ;
  • рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ;
  • рдпрд╛рджрджрд╛рд╢реНрдд рдЦрд╛рд▓реА рдХрд░рдирд╛;
  • рдкрд░рд┐рдгрд╛рдо рджрд╛рдЧ;
  • рдХреЛрд░ рдХреЗ рдмреАрдЪ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВ;

рдХрд┐рд╕реА рднреА рд╕рд┐рдВрдХ рдкреНрд░рднрд╛рд╡ рд╣рдореЗрд╢рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рд╡реЗ рдирдЧрдгреНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрд▓ рд╕рдордп рдХреЗ рдПрдХ рдЕрд░рдмрд╡реЗрдВ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╣рдореЗрд╢рд╛ рдЧреИрд░рдЬрд░реВрд░реА рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдореМрдЬреВрдж рд░рд╣рддреЗ рд╣реИрдВред рдЙрдирдХреА рдорджрдж рд╕реЗ, рд╣рдо рд╢рд╛рд░реНрдкрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред



рдпрд╣ Amdahl рдХреЗ рдХрд╛рдиреВрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдорд╛рдирдХ рддрд╕реНрд╡реАрд░ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ, рдЬреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕реАрдзреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдмрдврд╝рдиреА рдЪрд╛рд╣рд┐рдП, asymptote рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЧреНрд░рд╛рдл рдЕрдкрдардиреАрдп рд╣реИ, рдореИрдВрдиреЗ рдЕрдкрдиреА рд░рд╛рдп рдореЗрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рджреГрд╢реНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХреБрдЫ рдХреНрд░рдордмрджреНрдз рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ 5% рд▓рдЧрддрд╛ рд╣реИ: рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ = 0.05 = 1/20ред

рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд░рдордмрджреНрдз рднрд╛рдЧ рдХреЗ рд╕рд╛рде, рдЬреЛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХреЗрд╡рд▓ 1/20 рд▓реЗрддрд╛ рд╣реИ, рдпрджрд┐ рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 20 рдХреЛрд░ рддрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ 20 рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, 18 рдЧреБрдирд╛ рддреЗрдЬред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЧрдгрд┐рдд рдПрдХ рджрд┐рд▓ рдХреА рдмрд╛рдд рд╣реИ :

wall = 0.05 + 0.95/num_cores, speedup = 1 / (0.05 + 0.95/num_cores)

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ 5% рдХреЗ рдХреНрд░рдордмрджреНрдз рднрд╛рдЧ рдХреЗ рд╕рд╛рде рддреНрд╡рд░рдг 10 рдЧреБрдирд╛ (10.3) рд╣реЛрдЧрд╛, рдФрд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЖрджрд░реНрд╢ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ 51% рд╣реИред

8 рдХреЛрд░= 5.9= =рек%
10 рдХреЛрд░= 6.9= 69%
20 рдХреЛрд░= 10.3= релрез%
40 рдХреЛрд░= 13.6= 34%
128 рдХреЛрд░= 17.4= 14%

20 рдХреЛрд░ (20 рдбрд┐рд╕реНрдХреНрд╕, рдпрджрд┐ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдо рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ 20 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдорд╛рдирддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдЕрдХреНрд╖рдорддрд╛ рддреЗрдЬреА рд╕реЗ рдмрдврд╝ рд░рд╣реА рд╣реИред

рдЬрдм рдХреНрд░рдордмрджреНрдз рдХрд╛рд░реНрдп рдХрд╛ рдХреЗрд╡рд▓ 1% рд░рд╣рддрд╛ рд╣реИ, рдФрд░ 99% рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рддреНрд╡рд░рдг рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ:

8 рдХреЛрд░= 7.5= 93%
16 рдХреЛрд░= 13.9= 87%
32 рдХреЛрд░= 24.4= 76%
64 рдХреЛрд░= 39.3= ремрез%

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдерд░реНрдореЛрдиреНрдпреВрдХреНрд▓рд┐рдпрд░ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдШрдВрдЯреЛрдВ рддрдХ рдЪрд▓рддреА рд╣реИ, рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ (рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ = 0.001), рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рджрдХреНрд╖рддрд╛ рджреЗрдЦреЗрдВрдЧреЗ:

8 рдХреЛрд░= 7.94= репреп%
16 рдХреЛрд░= 15.76= репреп%
32 рдХреЛрд░= 31.04= 97%
64 рдХреЛрд░= 60.20= 94%

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдХрднреА рднреА 100% рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 99.999%, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ 100% рдирд╣реАрдВред

рдПрди рдмрд╛рд░ рдореЗрдВ рдлреЗрд░рдмрджрд▓ рдФрд░ рдмреНрд░реЗрдХ рдХреИрд╕реЗ рдХрд░реЗрдВ?


рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ N рд╕рдордп рдореЗрдВ рдлреЗрд░рдмрджрд▓ рдФрд░ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

  1. Docs00 рднреЗрдЬреЗрдВ ... docs15 рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ , рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдирд╣реАрдВред
  2. рд╕рд░рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рдХреБрдВрдЬреА рд╕реЗ рдЪрдпрди рди рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдХреБрдЫ = 234ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрдХреНрд░рдорд┐рдд рднрд╛рдЧ (рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ) 1% рдирд╣реАрдВ рдФрд░ 5% рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рдЧрднрдЧ 20% рд╣реИред рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмреЗрддрд╣рд╛рд╢рд╛ рдХреБрд╢рд▓ рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдпрд╛ рдЗрд╕реЗ рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рднрд╛рдЧ рдХрд╛ 50% рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ, рдпреЛрдЬрдирд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдЖрджрд┐ рдХреЗ рдЧреИрд░-рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдпрд╣ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдирд╣реАрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдпрджрд┐ рд╣рдо рдбреЗрдЯрд╛ рдХреЛ 16 рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ PHP рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, (рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ), рддреЛ рд╣рдореЗрдВ 16 рдмрд╛рд░ рдордВрджреА рдЖрддреА рд╣реИред рдФрд░, рд╢рд╛рдпрдж, рдФрд░ рднреА рдЕрдзрд┐рдХ, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдк рдХреЛ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдЪрд╛рдирдХ рдЬрдм рдкреИрдирд╛рдкрди, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╣рдо рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдкрд╕рдВрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ (рдпрд╛ рдЦреЛрдЬ рд╕рд░реНрд╡рд░) рдХреЛ рдкреНрд░рд╢реНрди рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рддреНрд╡рд░рдг рдХрд╣рд╛рдБ рд╕реЗ рдЖрддрд╛ рд╣реИ? рдмрд▓реНрдХрд┐, рдПрдХ рдордВрджреА рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

рдЬреАрд╡рди рд╕реЗ рдмрд╛рдЗрдХ


рдпрджрд┐ рдЖрдк C ++ рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ POSIX рдереНрд░реЗрдбреНрд╕ рдХреЛ рд▓рд┐рдЦреЗрдВ , рди рдХрд┐ рдмреВрд╕реНрдЯ I / Oред рдореИрдВрдиреЗ рдЦреБрдж рдУрд░реЗрдХрд▓ рдФрд░ MySQL рдХреЗ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреЗрдЦрд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдмреВрд╕реНрдЯ рдкрд░ MySQL рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд▓рд┐рдЦрд╛ рдерд╛ред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдкрд░ рд╢реБрджреНрдз рд╕реА рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╡реЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдореЛрдбрд╝рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдмреВрд╕реНрдЯ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ I / O, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд▓реЗ рдЧрдПред рдПрдХ рд╕рдорд╕реНрдпрд╛ - рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ I / O, рдЬреЛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ 10 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдПрдХ рдЕрджреГрд╢реНрдп рддреБрд▓реНрдпрдХрд╛рд▓рди рдмрд┐рдВрджреБ рдХреЗ рдЕрдВрджрд░ рдерд╛ред рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ 10 рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реЗ 20 рдЧреБрдирд╛ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ 10 рдмрд╛рд░ рдЕрдиреБрд░реЛрдз рдЦреБрдж рдХреЛ рдФрд░ рдПрдХ рдмрд╛рд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдмрд┐рдВрджреБ рдкрд░ред

рдирд┐рд╖реНрдХрд░реНрд╖: рдРрд╕реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд▓рдиреЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреЛ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВ рдХреБрдЫ рднреА рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред

рдЕрдиреБрдкрдпреБрдХреНрдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рди рд▓рд┐рдЦреЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 20 рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред рдпрд╛ рд╣рд░ рдЕрд╡рд╕рд░ рдкрд░, рдпрд╣ рд╕рдм рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рди рдХрд░реЗрдВ - рд╕рдордЭреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рди рдХрд░реЗрдВред

рдП / рдмреА рдЯреЗрд╕реНрдЯ рдмрд╛рдЗрдХ


рдХрднреА-рдХрднреА рдЖрдк рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдиреЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдХрд┐ рдХреНрд░рдордмрджреНрдз рднрд╛рдЧ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреВрд╕рд░реЗ, рдПрдХ рдмрдбрд╝рд╛ рд╣реИред

  • рддреБрд░рдВрдд ~ 60 рдЦреЛрдЬ рд╕реВрдЪрдХрд╛рдВрдХ рд╢рд╛рд░реНрдХ, рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ
  • рдпреЗ рдПрдХ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рддрд╣рдд рд╕рд╣реА рдФрд░ рд╕рд╣реА рд╢рд╛рд░реНрдб рд╣реИрдВред
  • 1000 рддрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдереЗ, рдФрд░ 50,000 рджрд╕реНрддрд╛рд╡реЗрдЬ рдереЗред

рдпрд╣ рдПрдХ рдЙрддреНрдкрд╛рджрди рдмрд╛рдЗрдХ рд╣реИ, рдЬрдм рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ 60 рд╕реЗ рдЕрдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛: "рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЗрд╕реЗ рд╕реНрдкрд░реНрд╢ рди рдХрд░реЗрдВ", рд╡реЗ рд╕рднреА рдЗрд╕реЗ рднреВрд▓ рдЧрдП, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 60 рд╢рд╛рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рд╣реИред рд╣рдордиреЗ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдирдореВрдиреЗ рдХреА рд╕реАрдорд╛ рдПрдХ рд╣рдЬрд╛рд░ рд╕реЗ рдмрдврд╝рд╛рдХрд░ 50 рд╣рдЬрд╛рд░ рдХрд░ рджреА рд╣реИред рдЕрдЪрд╛рдирдХ, рдпрд╣ рдзреАрдорд╛ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рд╕реНрд╡рдпрдВ рдЕрдиреБрд░реЛрдз, рдЬрд┐рд╕реЗ рд╢рд╛рд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдиреЗ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдбрд╝рд╛рди рднрд░реА, рдФрд░ рдордВрдЪ рдХреЛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬрдм 60 рд╢рд╛рд░реНрдХ рд╕реЗ 50 рд╣рдЬрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдереЗред рдПрдХ рдХреЛрд░ рдкрд░ рдЗрди 3 рдорд┐рд▓рд┐рдпрди рдЕрдВрддрд┐рдо рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, 3 рдорд┐рд▓рд┐рдпрди рдХреЗ рд╢реАрд░реНрд╖ рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ред рд╡рд╣реА рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛, рд╡рд╣реА рдЕрдорд▓рджрд╛рд▓ рдХрд╛ рдХреНрд░реВрд░ рдирд┐рдпрдо рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╕рд┐рд░реНрдл рдЗрдВрд╕рд╛рдирд┐рдпрдд рдХреЗ рд╕рд╛рде рдкреИрдирд╛рдкрди рдХрд░реЗрдВ
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрддрд╛рдПрдВ: "рдпрд╣ рдХрд░реЛ!"

рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░: рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ рдХреБрдЫ рд╕рд╣реА рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдЧрд▓рдд рдордВрдЬрд╝рд┐рд▓ рд╕реЗ рд╣реВрдБ !!!

рдореИрдВ рдЕрдкрдиреЗ рдкреВрд░реЗ рд╕рдЪреЗрдд рдЬреАрд╡рди рдХреЗ рджреМрд░рд╛рди "рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрдЯреНрдЯрд░рд╡рд╛рдж" рдирд╛рдордХ рдзрд░реНрдо рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрджрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред рддрд╛рдХрд┐ рдЙрд╕ рд╕рдордп рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рдП, рддреЛ рдЖрдк рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╕рдордЭреЗрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ, рдХреИрд╕реЗ рдЗрд╕реЗ рдЕрдВрджрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рд╡рд┐рдХрд▓реНрдк рджреЗрдЦреЗрдВ:

  1. "рд╣рд╛рде ред " рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдбреЗрдЯрд╛ рдХреЛ 16 рд╡рд░реНрдЪреБрдЕрд▓ рдЯреЗрдмрд▓ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЦрдВрдбрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ - рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рд╣рд╛рдереЛрдВ рдХреЛ рдлреЗрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реИ - рддреЛ рд╣рд╛рде рди рдлреЗрд░реЗрдВ! рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ MySQL 3.23 рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  2. "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд"ред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рд▓рдЧрднрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлреЗрд░рдмрджрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдзрд╛рд░ рд╣реИрдВ, рдФрд░ рдЙрдирдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рд░реНрдХ = 16 (рдЬреЛ рднреА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ) рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. "рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд" - рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реМрдХрд┐рдХ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдФрд░ рдХреНрд░реВрд░ рдореЛрдбред рдпрд╣реА рд╣реИ, рдЖрдзрд╛рд░ рдЦреБрдж рдХреЛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдЪ рд╣реИрдВред

рдорд╢реАрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЙрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ (MongoDB, Elastic, Cassandra, ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддрдерд╛рдХрдерд┐рдд NoSQL) рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ "рдореБрдЭреЗ 16 рд╢рд╛рд░реНрдк рдХрд░реЗрдВ" рд╕реНрд╡рд┐рдЪ рдЦреАрдВрдЪ рджреЗрдВрдЧреЗ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЙрд╕ рд╕рдордп, рдЬрдм рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╢реЗрд╖ рд▓реЗрдЦ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕реЗрдореАрдЖрдЯреЛрдореИрдЯрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░, рдкрд░рд┐рд╖реНрдХреГрдд рд╕реВрдЪрдирд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдЪреЛрдереЗ рдЖрддрдВрдХ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ MySQL рдХреЗ рдкрд╛рд╕ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдерд╛, рдлрд┐рд░ рднреА, рд▓рдбрд╝рд╛рдИ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдард┐рдХрд╛рдиреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдЕрд╢реНрд▓реАрд▓ рдореВрд▓реНрдпреЛрдВ рддрдХ рдмрдврд╝рддрд╛ рд╣реИред

рд╡реНрдпрдХреНрддрд┐рдЧрдд DBA рдХреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рдкреАрдбрд╝рд┐рдд рдорд╛рдирд╡рддрд╛ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╕рддрд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдХрдИ рдЦрд░рд╛рдм рд╢реЗрд░рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦрддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрдо рд╢рд╛рд░реНрдкрд┐рдВрдЧ рд╕реЙрд▓реНрдпреВрд╢рди рдХреЛ ProxySQL (MariaDB / Spider, PG / pg_shard / Citus, ...) рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕реА рдордВрддреНрд░ рдХрд╛ рдПрдХ рдЬрд╛рдирд╛-рдорд╛рдирд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред

ProxySQL рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЙрджреНрдпрдо-рд╡рд░реНрдЧ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд░реВрдЯрд┐рдВрдЧ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╣рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдкреИрдирд╛рдкрди рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдорд╛рдирд╡реАрдп рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рд╢рд╛рд░реНрдк рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдХреЛрдИ "рд╢рд╛рд░реНрдХ = 16" рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рддреЛ рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рдд рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЬреЛ рджрд┐рдЦрддрд╛ рд╣реИ: "рд╣рдореНрдо ... рдЪрдпрди рдХрд░реЗрдВ" рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ? рд╣рд╛рдВ, рдЗрд╕реЗ 16 рдЫреЛрдЯреЗ SELECT * FROM server1.document1, SELECT * FROM server2.document2 - рдореЗрдВ рдЗрд╕ рдпреВрдЬрд░рдиреЗрдо / рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдлрд╛рдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛, рддреЛтАж тАЭрдЖрджрд┐ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдордзреНрдпрд╡рд░реНрддреА рдкреИрдЪ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рд╣реИрдВред PostgreSQL рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЙрд╕реА рд╕рдордп рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИрдВ (PostgresForeign Data Wrappers, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, PostgreSQL рдореЗрдВ рд╣реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдмрд╛рд╣рд░реА рдкреИрдЪ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╢рд╛рд▓ рд╡рд┐рд╖рдп рд╣реИ рдЬреЛ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред

рдЖрдЗрдП, рдмрдЬрд╝ рдереНрдпреЛрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░реЗрдВред

рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╕реНрд╡рдЪрд╛рд▓рди?


рдЗрд╕ рдкрддреНрд░ F () рдореЗрдВ shard_id = F(object). рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд╛ рдкреВрд░рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд, рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдХреНрд░реВрдб рд╣реИ: shard_id = F(object).

рдЖрдо рддреМрд░ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдмрд┐рд▓рд┐рдпрди рд░рд┐рдХреЙрд░реНрдбреНрд╕ (рдпрд╛ 64) рд╣реИрдВред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ - рдХреИрд╕реЗ? рдХрд┐рд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдореБрдЭреЗ рдЕрдкрдиреЗ 2 рдмрд┐рд▓рд┐рдпрди рд░рд┐рдХреЙрд░реНрдб (рдпрд╛ 64) 16 рд╕рд░реНрд╡рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП?

рд╣рдо рдореЗрдВ рдЕрд╡реНрдпрдХреНрдд рдЧрдгрд┐рддрдЬреНрдЮ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЬрд╛рджреВ рдХрд╛ рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (рдСрдмреНрдЬреЗрдХреНрдЯ, рд▓рд╛рдЗрди, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПред

рдпрджрд┐ рд╣рдо рдЧрдгрд┐рдд рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рди рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ (рд▓рд╛рдЗрди рд╣реА) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдмрд╛рд╣рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреИрд╕реЗ рдХрд┐ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рднреА рд╣реЛрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдП, рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдФрд░ рдХрд╛рд░реНрдп рдХреБрдЫ рдЕрд▓рдЧ рд╣реИрдВ:

  • shard_func = F1 (рд╡рд╕реНрддреБ);
  • shard_id = F2 (shard_func, ...);
  • shard_id = F2 ( F1 (рдСрдмреНрдЬреЗрдХреНрдЯ), current_num_shards, ...)ред

рд▓реЗрдХрд┐рди рдЖрдЧреЗ рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЗрди рдЬрдВрдЧрд▓реЛрдВ рдореЗрдВ рдЦреБрджрд╛рдИ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рд╕рд┐рд░реНрдл рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рджреВ рдХреЗ рдХрд╛рд░реНрдп F () рдХреНрдпрд╛ рд╣реИрдВред

F () рдХреНрдпрд╛ рд╣реИрдВ?


рд╡реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдФрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдирдореВрдирд╛ рд╕рд╛рд░рд╛рдВрд╢:

  • F = рд░реИрдВрдб ()% nums_shards
  • F = somehash (object.id)% num_shards
  • F = object.date% num_shards
  • F = object.user_id% num_shards
  • ...
  • F = shard_table [somehash () | ... object.date | ...]

рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп - рдЖрдк рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЦреЗрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд╣рдо рдПрдХ рдордирдорд╛рдирд╛ рд╕рд░реНрд╡рд░ рдкрд░, рдПрдХ рдордирдорд╛рдирд╛ рдХрд░реНрдиреЗрд▓ рдкрд░, рдПрдХ рдордирдорд╛рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдЧрд▓рд╛ рд░рд┐рдХреЙрд░реНрдб рдлреЗрдВрдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢реА рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реБрд╕рдВрдЧрдд рд╣реИрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдорд┐рдВрдЧ рдХреЗ рдХреБрдЫ рдФрд░ рдмреБрджреНрдзрд┐рдорд╛рди рддрд░реАрдХреЗ рд╣реИрдВ, рдпрд╛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрдорд┐рдВрдЧред рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рд╕реЗ рдЧреБрдЬрд░реЗрдВред

рдПрдл = рд░реИрдВрдб ()


рдЪрд╛рд░реЛрдВ рдУрд░ рдмрд┐рдЦрд░рд╛рд╡ рдПрдХ рдмрд╣реБрдд рд╕рд╣реА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рдорд╕реНрдпрд╛: рд╣рдордиреЗ рдЕрдкрдиреЗ 2 рдмрд┐рд▓рд┐рдпрди рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рддрд┐ рд╣рдЬрд╛рд░ рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдХрд╣рд╛рдВ рд╣реИред рд╣рдореЗрдВ user_1 рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реИред рд╣рдо рдПрдХ рд╣рдЬрд╛рд░ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╛рдВрдЯрддреЗ рд╣реИрдВ - рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИред

F = somehash ()


рдЖрдЗрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╡рдпрд╕реНрдХ рддрд░реАрдХреЗ рд╕реЗ рддрд┐рддрд░ рдмрд┐рддрд░ рдХрд░реЗрдВ: user_id рд╕реЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрдврд╝реЗрдВ, рд╡рд┐рднрд╛рдЬрди рдХреА рд╢реЗрд╖ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд▓реЗрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╕рд░реНрд╡рд░ рддрдХ рддреБрд░рдВрдд рдкрд╣реБрдВрдЪреЗрдВред

рд╣рдо рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдФрд░ рдлрд┐рд░, рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдЪреНрдЪ рднрд╛рд░ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЕрдВрддрд░реНрдорди, рдЬреАрд╡рди рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реЛрддрд╛ред

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

рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкреИрдирд╛рдкрди (F = object.date% num_shards)


рдХрднреА-рдХрднреА, рдЕрдХреНрд╕рд░, рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ 95% рдФрд░ рд▓реЛрдб рдХрд╛ 95% рдРрд╕реЗ рдЕрдиреБрд░реЛрдз рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкреИрда рд╣реЛрддреА рд╣реИред , 95% - 1 , 3 , 7 , 5% . 95% , , , .

, , , - .

тАФ , . , , , , . 5 % .

, :

  1. , 95% .
  2. 95% , , . , . , .

, тАФ , - .

, , , , . ┬л - ┬╗.

┬л┬╗. , .

1. :


, , .

  • , !
  • () .

, / , , , PM ( , PM ), . .

, . , , 100 . .

, , , , - .

2. ┬л┬╗ : , join


, ?

  • ┬л┬╗ тАж WHERE randcol BETWEEN aaa AND bbb?
  • ┬л┬╗ тАж users_32shards JOIN posts_1024 shards?

: , !

, , , . . (, , document store ), , .

тАФ - . . , . , , , . - , , , , тАФ .

, .

3. / :


: , .

, .

, , , . , , , 10 , - 30, 100 . . тАФ , - тАФ , - .

, : 16 -, 32. , 17, 23 тАФ . , , - ?

: , , .

, ┬л┬╗, ┬л ┬╗.

#1.


  • NewF(object), .
  • NewF()=OldF() .
  • .
  • рдУрд╣ред

, 2 , , . : 17 , 6 , 2 , 17 23 . 10 , , . .

#2.


тАФ тАФ 17 23, 16 32 ! , .

  • NewF(object), .
  • 2^N, 2^(N+1) .
  • NewF()=OldF() 0,5.
  • 50% .
  • , .

, , . , , .

, . , 16 16, тАФ .

, тАФ .

#3. Consistent hashing


, consistent hashing


┬лconsistent hashing┬╗, , .

: () , . , , , ( , ), .

  • : , 2 ┬л┬╗, 1/n.
  • : , . .

, . , , , : , .

. , . , .., . , - , , .

, , , Cassandra . , , , , , .

, тАФ / , , .

, : ? ? тАФ , !

#4. Rendezvous/HRW


( , ): shard_id = arg max hash(object_id, shard_id).

Rendezvous hashing, , , Highest Random Weight. :

, , 16 . (), - , 16 , . -, .

HRW-hashing, Rendezvous hashing. , -, , .

, . , - - . .

, .

#5.


, Google - :

  • Jump Hash тАФ Google '2014.
  • Multi Probe тАФGoogle '2015.
  • Maglev тАФ Google '2016.

, . , , , -, . .

#6.


тАФ . ? , 2 , object_id 2 , .

, ? ?

. , - , , . , , , , .

:

  • 1 .
  • / / / : min/max_id => shard_id.
  • 8 4 (4 !) тАФ 20 .
  • - , 20 тАФ .
  • 20 тАФ .

2 - 16 тАФ 100 - . : , , тАФ 1 . , , .

, , , - , .

рдирд┐рд╖реНрдХрд░реНрд╖


: ┬л , !┬╗. , 20 .

, , . , тАФ . 100$ , . -, . тАФ .

, , ┬л┬╗ (, DFS, ...) . , , highload - . , , - . тАФ , .

F() , , , .. , , 2 .



, , . HighLoad++ , , тАФSphinxтАФhighload , .




Highload User Group. , .

, , HighLoad++ . , , . , , . highload-, .

, , , . , , , .

24 - ┬л┬╗, ┬л ┬╗. , . , .

, , 8 9 - HighLoad++ early bird .

Source: https://habr.com/ru/post/hi433370/


All Articles