рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рд▓реЗрдирджреЗрди

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

рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ "рдЧреНрд▓реЛрдмрд▓реНрд╕ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрдЬрд╛рдирд╛-рддрд▓рд╡рд╛рд░ рд╣реИрдВ":

рдкреЗрдбрд╝ред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛
рдкреЗрдбрд╝ред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛
рд╡рд┐рд░рд▓ рд╕рд░рдгрд┐рдпрд╛рдБ. рднрд╛рдЧ 3

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

рдЬреИрд╕рд╛ рдХрд┐ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдирджреЗрди рдХреЗ рдЕрдЪреНрдЫреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдПрд╕рд┐рдб:

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

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

рдореИрдВ- рдЖрдЗрд╕реЛрд▓реЗрдЯ. рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрди-рджреЗрди рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдбреА - рдЯрд┐рдХрд╛рдКред рд▓реЗрди-рджреЗрди рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рдж, рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрд┐рдЬрд▓реА рдХреА рд╡рд┐рдлрд▓рддрд╛) рд╕реЗ рд▓реЗрди-рджреЗрди рджреНрд╡рд╛рд░рд╛ рдмрджрд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рдкрд░ рдЕрд╕рд░ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рд▓реЗрдирджреЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЯреАSTART, TCOMMIT, рдЯреНрд░реЙрд▓рдмреИрдХ.

1. рдкрд░рдорд╛рдгреБрддрд╛

рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкрд░рдорд╛рдгреБрддрд╛ рд╣реИред рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВред

Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TCOMMIT

рдлрд┐рд░ рд╣рдо рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ:

Write ^a(1), тАЬ тАЭ, ^a(2), тАЬ тАЭ, ^a(3)

рд╣рдореЗрдВ рдорд┐рд▓рд╛:

1 2 3

рдФрд░ рд╕рдм рдареАрдХ рд╣реИ рдиред рдкрд░рдорд╛рдгреБрддрд╛ рдмрдирд╛рдП рд░рдЦреА рдЬрд╛рддреА рд╣реИ: рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЖрдЗрдП рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рдПрдВ, рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд▓реЗрдирджреЗрди рдХреИрд╕реЗ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред

рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рдкрд░рдорд╛рдгреБрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3

рдлрд┐рд░ рд╣рдо рдЬрдмрд░рджрд╕реНрддреА рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХреЗрдВрдЧреЗ, рдЙрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ.

docker kill my-iris

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

рд╢рд╛рдпрдж рд▓реЗрди-рджреЗрди рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛?

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

- рдирд╣реАрдВ, рдпрд╣ рдмрдЪ рдирд╣реАрдВ рдкрд╛рдпрд╛ рд╣реИред

рдЖрдЗрдП рд░реЛрд▓рдмреИрдХ рдХрдорд╛рдВрдб рдЖрдЬрд╝рдорд╛рдПрдБ:

Kill ^A
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TROLLBACK

WRITE ^a(1), ^a(2), ^a(3)
^
<UNDEFINED> ^a(1)

рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ.

2. рд╕рдВрдЧрддрд┐

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ ^рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо TIN рдХреЛ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

^person(1234567, тАШfirstnameтАЩ) = тАШSergeyтАЩ
^person(1234567, тАШlastnameтАЩ) = тАШKamenevтАЩ
^person(1234567, тАШphoneтАЩ) = тАШ+74995555555
...

рдЕрдВрддрд┐рдо рдирд╛рдо рдФрд░ рдкреНрд░рдердо рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ ^рд╕реВрдЪрдХрд╛рдВрдХ рдХреБрдВрдЬреА рдмрдирд╛рдИред

^index(тАШKamenevтАЩ, тАШSergeyтАЩ, 1234567) = 1

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рддреНрд╡ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

TSTART
^person(1234567, тАШfirstnameтАЩ) = тАШSergeyтАЩ
^person(1234567, тАШlastnameтАЩ) = тАШKamenevтАЩ
^person(1234567, тАШphoneтАЩ) = тАШ+74995555555
^index(тАШKamenevтАЩ, тАШSergeyтАЩ, 1234567) = 1
TCOMMIT

рддрджрдиреБрд╕рд╛рд░, рд╣рдЯрд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ рд▓реЗрдирджреЗрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

TSTART
Kill ^person(1234567)
ZKill ^index(тАШKamenevтАЩ, тАШSergeyтАЩ, 1234567)
TCOMMIT

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

3. рдЕрд▓рдЧрд╛рд╡

рдпрд╣реАрдВ рд╕реЗ рдЬрдВрдЧрд▓реЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рд╣реЛрддреА рд╣реИред рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕рд╛рде рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

рд╕реНрдерд┐рддрд┐ рддреБрд▓рдиреАрдп рд╣реИ рдЬрдм рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╣реА рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рде рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

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

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

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

рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд▓реЗрдирджреЗрди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВред рдпрд╣ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдЧреБрдг рд╣реИ.

SQL 4 рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

  • рдкрдврд╝реЗ рд▓рд┐рдЦреЗ
  • рдкрдврд╝реЗрдВ рдЧрдП
  • рджреЛрдмрд╛рд░рд╛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп
  • serializable

рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рджреЗрдЦреЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рд▓рдЧрднрдЧ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рд╣реИред

рдкрдврд╝реЗ рд▓рд┐рдЦреЗ - рдпрд╣ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рд╕рдмрд╕реЗ рдирд┐рдЪрд▓рд╛ рд╕реНрддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рднреА рд╣реИред рд▓реЗрди-рджреЗрди рдПрдХ-рджреВрд╕рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдкрдврд╝реЗрдВ рдЧрдП рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдЕрдЧрд▓рд╛ рд╕реНрддрд░ рд╣реИ, рдЬреЛ рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИред рд▓реЗрди-рджреЗрди рдХрдорд┐рдЯ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдХрдорд┐рдЯ рдХреЗ рдмрд╛рдж рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рдВрдмрд╛ рд▓реЗрдирджреЗрди T1 рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рд▓реЗрдирджреЗрди T2, T3 ... Tn рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдПрдВ рд╣реБрдИрдВ, рдЬреЛ T1 рдХреЗ рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рддреЛ T1 рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рдиреЙрди-рд░рд┐рдкреАрдЯреЗрдмрд▓ рд░реАрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

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

Kill ^t

Write ^t(1)
2

TSTART
Set ^t(1)=2

рдХреЛрдИ рдЕрд▓рдЧрд╛рд╡ рдирд╣реАрдВ рд╣реИ. рдПрдХ рдереНрд░реЗрдб рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рд▓реЗрди-рджреЗрди рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓рд╛ рджреВрд╕рд░рд╛ рд╡реНрдпрдХреНрддрд┐ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдзрд╛рдЧреЛрдВ рдХреЗ рд▓реЗрдирджреЗрди рдореЗрдВ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЖрдЗрдП 2 рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ 2 рд▓реЗрдирджреЗрди рдЦреЛрд▓реЗрдВред

kill ^t
TSTART
Write ^t(1)
3

TSTART
Set ^t(1)=3

рд╕рдорд╛рдирд╛рдВрддрд░ рд▓реЗрдирджреЗрди рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рдбреЗрдЯрд╛ рджреЗрдЦрддреЗ рд╣реИрдВред рддреЛ, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рднреА рдорд┐рд▓рд╛, рдкрдврд╝реЗрдВ рдЕрдирдХрдорд┐рдЯреЗрдбред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрддрд░ рдкрд░ рдЗрд╕рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рд╣рдореЗрд╢рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд░рд╣реА рд╣реИред

рдпрджрд┐ рд╣рдореЗрдВ рдЧреНрд▓реЛрдмрд▓ рд╕реНрддрд░ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рд╕реНрддрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

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

рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рд╣реИрдВ: рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд, рд╡реГрджреНрдзрд┐рд╢реАрд▓, рдПрдХрд╛рдзрд┐рдХ рд▓реЙрдХрд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рд▓рд╛.

рдирд┐рдЪрд▓реЗ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЯреНрд░реЗрдб-рдСрдлрд╝ рд╣реИрдВред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рддрд╛рд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рд░реВрд╕реА рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рджреЛ-рдЪрд░рдг рдЕрд╡рд░реЛрдзрди рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:

тЖТ рджреЛ рдЪрд░рдг рдЕрд╡рд░реЛрдзрди
тЖТ рджреЛ-рдЪрд░рдг рд▓реЙрдХрд┐рдВрдЧ

рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рд▓реЗрдирджреЗрди рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╕рдВрдЧрдд рдбреЗрдЯрд╛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдмрдЪреЗрдВ?

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

рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд▓реЙрдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реЛрддреЗ рд╣реИрдВтАФрдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЙрдиреНрд╣реЗрдВ рд▓реЗ рд╕рдХрддреА рд╣реИрдВред рдпреЗ рддрд╛рд▓реЗ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрд╕рдВрдЧрдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рд╡рд┐рдВрдбреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реА рдРрд╕рд╛ рд▓реЙрдХ рд▓реЗ рд╕рдХрддреА рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓реЙрдХ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдХреЛрдИ рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрджрд┐ рдбреЗрдЯрд╛ рдореБрдлрд╝реНрдд рд╣реИ
  2. рдХреЗрд╡рд▓ рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдбреЗрдЯрд╛ рдкрд░ рдПрдХ рд╕рд╛рдЭрд╛ рд▓реЙрдХ рд╣реИ рдФрд░ рд╡рд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓реЙрдХ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдереАред

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рд▓реЗрдирджреЗрди

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

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

рдпрд╣ рд╣рдореЗрдВ рд▓реЙрдХ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдо рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдзрд╛рд░ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдзрди рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡реНрдпрдХреНрддрд┐ 123 рд╕реЗ рд╡реНрдпрдХреНрддрд┐ 242 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛ рдХреНрд╖рдг:

LOCK +^person(123), +^person(242)
Set ^person(123, amount) = ^person(123, amount) - amount
Set ^person(242, amount) = ^person(242, amount) + amount
LOCK -^person(123), -^person(242)

рдбреЗрдмрд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ 123 рд╕реЗ рдзрдирд░рд╛рд╢рд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдХреНрд╖рдг рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреНрд▓реЙрдХ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

LOCK +^person(123)
Write ^person(123)

рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рдЦрд╛рддрд╛ рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рд╛рдЭрд╛ рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

LOCK +^person(123)#тАЭSтАЭ
Write ^person(123)

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

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

рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдЬреЛ рдбреЗрдЯрд╛ рдмрджрд▓рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкрдврд╝рдиреЗ рдкрд░ рдПрдХ рд╕рд╛рдЭрд╛ рд▓реЙрдХ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЬреЛ рдбреЗрдЯрд╛ рд╣рдо рдмрджрд▓рддреЗ рд╣реИрдВ рдЙрд╕ рдкрд░ рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡ рд▓реЙрдХ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ред

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

LOCK +^person(123, amount)#тАЭSтАЭ
╤З╤В╨╡╨╜╨╕╨╡ ^person(123, amount)

рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди (рдЗрд╕ рд╕рдордп рд╕рдорд╛рдирд╛рдВрддрд░ рдзрд╛рдЧреЗ ^рд╡реНрдпрдХреНрддрд┐(123, рд░рд╛рд╢рд┐) рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ)

LOCK +^person(123, amount)
╨╕╨╖╨╝╨╡╨╜╨╡╨╜╨╕╨╡ ^person(123, amount)
LOCK -^person(123, amount)

╤З╤В╨╡╨╜╨╕╨╡ ^person(123, amount)
LOCK -^person(123, amount)#тАЭSтАЭ

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

LOCK +(^person(123),^person(242))

рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдкрд░рдорд╛рдгреБ рд░реВрдк рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдпрджрд┐ рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ ^рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдзрди рдбреЗрдмрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ SERIALIZE рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рд╣реА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдзрди рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдПрдХ рд╣реА рд░рд╛рд╢рд┐ рдХреЛ рдХрдИ рдмрд╛рд░ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

4. рд╕реНрдерд╛рдпрд┐рддреНрд╡

рдореИрдВрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреА рд╣рд╛рд░реНрдб рдХрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛

docker kill my-iris

рдЖрдзрд╛рд░ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рд╣рди рдХрд┐рдпрд╛ред рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ.

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

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

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

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ