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

рдЕрдкрдиреЗ
рдЖрдЦрд┐рд░реА рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдХ рдЧреЗрдо рдЯрд╛рд╕реНрдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдЧреЗрдо рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ-рджреВрд╕рд░реЗ рдХреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рд╣рдорд▓рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд░реНрдЪреБрдЕрд▓ рдордиреА рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реНрдпрд╛рдкрд╛рд░ рдЖрджрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рдЬрди рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрдБрдЯрд╛рдИ рд╣реЛрддреА рд╣реИ, рди рдХреЗрд╡рд▓ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕ рддрд░рд╣ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рднреА рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреЛрдИ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╡рдЬрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╡реНрдпрд╛рдкрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдХрдард┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рдХрд╛рдлреА рдорд╛рдирдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдХрд╛рд░реНрдпред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЯрд╛рд░реЗрдВрдЯреВрд▓ + рд▓реБрдЖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдЦрд┐рд░реА рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЗрд╕рдореЗрдВ рдореИрдВ рдХреЗрд╡рд▓ рдЖрд░реЗрдЦ рдкрд░ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд▓реБрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкреЗрд░рд▓рд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЕрдЪреНрдЫреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдКрдВрдЧрд╛ред
рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдлрд╝реАрд▓реНрдб рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ, рдЙрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛ рдЪрдпрди рдореЗрдВ рд╣реИ, рдФрд░ рд╡рдЬрдиред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рдЬрди рдХреЗ рд╕рд╛рде рдЪреЗрд╣рд░реЗ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдл рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред рд▓реЗрдХрд┐рди, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рдЬрди рди рдХреЗрд╡рд▓ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕реЗ рджрд┐рди-рдкреНрд░рддрд┐рджрд┐рди рдХрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЖрдкрдХреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╡рдЬрди рдХреЗ рдЕрдВрддрд┐рдо рдЕрдкрдбреЗрдЯ рдХреА рддрд╛рд░реАрдЦ рд░рдЦрдиреА рд╣реЛрдЧреАред рдмреЗрд╢рдХ, рдЖрдк рддрд╛рд░реАрдЦ рдирд╣реАрдВ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рд░реЛрдЬрд╝рд╛рдирд╛ рд╕рднреА рд░рд┐рдХреЙрд░реНрдбреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рднреА рднрд╛рд░реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХрд╛рд░реНрдп рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рд╡рд╣ рд╕реВрддреНрд░ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдореЗрдВ рд╡рдЬрд╝рди рдШрдЯрд╛рдиреЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡рдЬрд╝рди 30 рджрд┐рдиреЛрдВ рдХреЗ рднреАрддрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдШрдЯ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдЗрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рддрд╛рд░реАрдЦ рдпрд╛ рдмреЗрд╣рддрд░, рдкрд╣рд▓реЗ рд╕реЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдЧреБрдгрд╛рдВрдХ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рд╕рдХреНрд░рд┐рдп рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдордп рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреА рдЧрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рдЬрди рдмрдврд╝реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЯрд╛рд╕реНрдХ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╡рдЬрд╝рди рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд░рдЕрд╕рд▓, рдЗрд╕ рд╢рд░реНрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рддрд╛рд░реАрдЦ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреА рд╣реЛрдЧреАред
рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд╡рдЬрди рдХрд╛ рдЪрд╛рд░реНрдЯ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ 05.02 рдХрд╛ рдирд┐рд╢рд╛рди рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗрд╡рд▓ рдЙрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рд╡рдЬрди рдЧреНрд░рд╛рдл рдирд╛рд░рдВрдЧреА рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ 17.02 рдкрд░, рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рдЬрди рдПрдХ рд╣реА рд╕реНрддрд░ рдкрд░ рд░рд╣рддрд╛ рд╣реИред
рдХреБрд▓, рд╣рдореЗрдВ 2 рд╕реНрдерд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВред 5 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛:
Player1
player2
рднрд╛рд░
рдЕрдВрддрд┐рдо рдЕрджреНрдпрддрди рддрд┐рдерд┐
рд╡рдЬрди рдШрдЯрд╛рдиреЗ рдкреНрд░рддрд┐ рджрд┐рди
2 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рджреВрд╕рд░рд╛:
Player1
рдЦрд┐рд▓рд╛рдбрд╝реА рдЕрдВрддрд┐рдо рдЧрддрд┐рд╡рд┐рдзрд┐ Date1
рдЕрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рдЗрдВрдбреЗрдХреНрд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рд░рд╡реИрдпрд╛ рдЕрдиреНрдп рд╕рднреА рдХреЗ рд▓рд┐рдП рдЪреБрдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдкрд░ рдПрдХ рдЧреИрд░-рдЕрджреНрд╡рд┐рддреАрдп рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рд╡рдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ 1 + 3 рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдордЧреНрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╣рд╛рдВ, рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдмрд┐рдВрджреБ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП 1 + 2 рдХреНрд╖реЗрддреНрд░ рдкрд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:
slab_alloc_arena = 1 pid_file = "box.pid" logger="cat - >> Tarantool.log" primary_port = 33013 secondary_port = 33014 admin_port = 33015 rows_per_wal = 5000000 # space[0].enabled = 1 space[0].index[0].type = "HASH" space[0].index[0].unique = 1 space[0].index[0].key_field[0].fieldno = 0 space[0].index[0].key_field[0].type = "NUM" space[0].index[0].key_field[1].fieldno = 1 space[0].index[0].key_field[1].type = "NUM" space[0].index[1].type = "TREE" space[0].index[1].unique = 0 space[0].index[1].key_field[0].fieldno = 0 space[0].index[1].key_field[0].type = "NUM" space[0].index[2].type = "TREE" space[0].index[2].unique = 0 space[0].index[2].key_field[0].fieldno = 0 space[0].index[2].key_field[0].type = "NUM" space[0].index[2].key_field[1].fieldno = 2 space[0].index[2].key_field[1].type = "NUM" space[1].enabled = 1 space[1].index[0].type = "HASH" space[1].index[0].unique = 1 space[1].index[0].key_field[0].fieldno = 0 space[1].index[0].key_field[0].type = "NUM"
рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рддреИрдпрд╛рд░ рд╣реИ, рдЖрдк рднрдВрдбрд╛рд░ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ tarantool_box --init-storage tarantool/src/box/tarantool_box: space 0 successfully configured tarantool/src/box/tarantool_box: space 1 successfully configured tarantool/src/box/tarantool_box: creating `./00000000000000000001.snap.inprogress' tarantool/src/box/tarantool_box: saving snapshot `./00000000000000000001.snap' tarantool/src/box/tarantool_box: done
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрдк рд▓реБрдЖ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрдВрдЬреАрдХрд░рдг (рд╡реГрджреНрдзрд┐_рд╕реНрдХреЛрд░)
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (get_top)
рд╣рдо рдЙрдиреНрд╣реЗрдВ box_popular_user.lua рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░ рдмреЙрдХреНрд╕_config_popular_user.lua рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдлрд┐рд░ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ init.lua рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ 1 рд▓рд╛рдЗрди: dofile ("box_popular_user.lua") рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
рддреЛ, рдЕрдм more_score () рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
function increase_score(user_id, friend_id, action_type)
рд╣рдо рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзреЛрдВ рдореЗрдВ рдмрд╣реБрдд "рдЕрдореАрд░" рдЦрд┐рд▓рд╛рдбрд╝реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рддреЗрдЬреА рд╕реЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдВрддрд┐рдо рд╡рдЬрди рд░реВрдкрд╛рдВрддрд░рдг рдХреА рддрд╛рд░реАрдЦ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмрдЪрд╛рд╡ рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓реЗрдВрдЧреЗ рдФрд░ рдЬрдм рддрдХ рд╕рднреА рддрд┐рдерд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рд╣рдо рд╡рдЬрд╝рди рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рджрд░рдЕрд╕рд▓, рддрд╛рд░реАрдЦреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:
function _move_last_update(id, cd, diff) weights = box.space[0] for tup in weights.index[1]:iterator(box.index.EQ, id) do
рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдбреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛ рдХрд┐ рдЬрдм рддрдХ рддрд╛рд░реАрдЦреЗрдВ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рддрдм рддрдХ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреАред
рдЕрдм рд╡рдЬрд╝рди рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдФрд░ рдЗрд╕рдХреА рдХрдореА рдХреЗ рдЧреБрдгрд╛рдВрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
function _get_score_koef(last_update, last_score, add_score, koef, current_date) local score = 0; if not last_score then
рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╣рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рддрд░реНрдХ рд╡рдЬрди рдкрд░рд┐рд╡рд░реНрддрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
function get_top(user_id, count_users, ids)
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ box_config_popular_user.lua рдореЗрдВ, рдирд┐рдореНрди рдорд╛рди рд░рдЦреЗрдВ:
map_type_score={user_page=100}
Box_popular_user.lua рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:
dofile("box_config_popular_user.lua")
рджрд░рдЕрд╕рд▓, рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрди рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдиреЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВред Init.lua рдкреНрд▓рдЧрдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЦреЗрдВред рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред
рдЕрдм рдЖрдЗрдП рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджреЗрдЦреЗрдВред
рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрд░реНрд▓ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рдзрд╛рдЧреЗ рдореЗрдВ рдХреБрдЫ рд▓реЙрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред
рд▓реЙрдЧ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдпреБрдХреНрдд рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреА рдЬрд┐рдиреНрд╣реЗрдВ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬрд┐рд╕реЗ рд╡рд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдлрд╛рдЗрд▓ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреЗ рд╕рд╛рде рдмреЛрдЭ рди рд▓рдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ DR :: Tarantool рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕реНрдХреИрди рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ yum, apt, ... рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
use strict; use DR::Tarantool ':constant', 'tarantool'; my $client = tarantool host => 'localhost', port => 33013, spaces => { 0 => { name => 'user_score', default_type => 'NUM', fields => [ qw(id fid score last_update koef), ], indexes => { 0 => { name => 'idx_id_fid', fields => [ 'id', 'fid' ] }, 1 => { name => 'idx_id', fields => [ 'id' ] }, 2 => { name => 'idx_id_score', fields => [ 'id', 'score' ] }, } }, 1 => { name => 'user_last_update', default_type => 'NUM', fields => [ qw(id last_update), ], indexes => { 0 => { name => 'idx_id', fields => [ 'id' ] }, } }, }; while(<>){ my $line = $_; my @params = split( " ", $line); $client->call_lua($params[0], @params[1..$#params],($params[0] eq 'increase_score' ? ('user_page') : ()); };

рдпрд╣рд╛рдБ рдПрдХ рдРрд╕реА рдЫреЛрдЯреА рд╕реА рд▓рд┐рдкрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд╡рд░реНрдгрди рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬрдЧрд╣ рдШрд┐рд░реА рд╣реБрдИ рд╣реИ, рдпрд╣ рдПрдХ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЛ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдореЗрдВ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реВрддреНрд░ рдореЗрдВ рдореБрдЭреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 3,500 рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдиреЗ рд▓рдЧрднрдЧ 17% CPU рд╣реА рдЦрд╛рдпрд╛ред рдЖрдЗрдП 4 рдереНрд░реЗрдб рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1050 рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдФрд░ рдЪрд╛рд░реЛрдВ рдПрдХ рд╕рд╛рде рд▓рдЧрднрдЧ 4200 рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдбред рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдиреЗ рд▓рдЧрднрдЧ 38% рдкреНрд░реЛрд╕реЗрд╕рд░ рдЦрд╛ рд▓рд┐рдпрд╛ред рдЬреНрдпрд╛рджрд╛ рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖред рдпрджреНрдпрдкрд┐ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рднреЗрдЬрддреА рд╣реИ, рд╡рд╣ рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓реАред
рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдХреЗ рджреМрд░рд╛рди, рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдХрд╣рд╛рдВ-рдХрд╣рд╛рдВ рдзреБрдВрдзрд▓рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ DR :: рдЯрд╛рд░реЗрдВрдЯреВрд▓ рднреА AnyEvent рдФрд░, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ AE :: io рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ , рдЬреЛ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХреБрдЫ рджреЗрд░реА рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ, рдореИрдВрдиреЗ рдЦреБрджрд╛рдИ рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдХреНрд▓рд╛рдЗрдВрдЯ :: рдЯрд╛рд░реЗрдВрдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рдЖрд░рдВрдн рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред
use Client::Tarantool; my $client = Client::Tarantool->new...
рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рдл рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ 1 рдзрд╛рдЧреЗ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, 100% рд╕реАрдкреАрдпреВ рдкрд░ рдЖрд░рд╛рдо рдХрд┐рдпрд╛, рдлрд┐рд░ рдЗрд╕реЗ 3 рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ 100% рд╕реАрдкреАрдпреВ рдореЗрдВ рднреА рдЖрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░, рдЬреЛ рдмрд╣реБрдд рд╣реА рдордирднрд╛рд╡рди рдерд╛, рдпрд╣ рдерд╛ рдХрд┐ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рд░рд╣реА рдереА! рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ 4 рдзрд╛рдЧреЗ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ 100% рд╕реАрдкреАрдпреВ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдХреБрд▓ рдпрд╣ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 18-20K рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдХрд▓рд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкрд╛рдВрдЪрд╡реАрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдереА, рдФрд░, рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ, рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧрд┐рд░ рдЧрдИ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХреА рдЧрдИ, рд╢реЗрд╖ 18-20K рдХреЗ рд╕реНрддрд░ рдкрд░ред
рдпрд╣ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ AnyEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╢реБрджреНрдз syswrite рдФрд░ sysread рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рд╣рдж рддрдХ "рдЕрддрд┐рд░рд┐рдХреНрдд" AE :: io рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред
рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо DR :: Tarantool :: AsyncClient рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВрдЧреЗред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдзрд┐рдХ рдлреИрд▓реА рд╣реБрдИ рдереА рдФрд░ рд╢рд╛рдпрдж рдмрд╣реБрдд рдкрдардиреАрдп рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рдЗрд╡реЗрдВрдЯ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрджрдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╕рдорддрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкрд░ 4 рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдФрд░ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ 7 рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ! рдФрд░ рджреВрд╕рд░реЗ рдЯреЗрд╕реНрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд▓рдЧрднрдЧ 2 рдмрд╛рд░ред рдпрд╣ рд▓рдЧрднрдЧ 30,000 рдкреНрд░рд╢реНрди рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рдореЛрддреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдЧрднрдЧ 100% рд╕реАрдкреАрдпреВ рдХреА рд╕реАрдорд╛ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдмрдирд╛ рд▓реЗрдВрдЧреЗ, рдЬрдм рд╕рднреА рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдиреЗ рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╡реЗ рд╕рднреА рдПрдХ рд╕рд╛рде рд▓реМрдЯ рдЖрдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЬреАрд╡рди рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛ред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рд▓реЙрдиреНрдЪ рдХреЗ рд╕рдордп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ 14169698 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реИрдВред рдЦрд┐рд▓рд╛рдбрд╝реА рд╕рдВрдмрдВрдзреЛрдВ рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ 5000 рд╣реИред

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