InterSystems IRIS рд╡реИрд╢реНрд╡рд┐рдХ рд▓реЗрдирджреЗрди

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

рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА "рдЧреНрд▓реЛрдмрд▓реНрд╕ - рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП рддрд▓рд╡рд╛рд░-рд░рд╛рдЬрдорд┐рд╕реНрддреНрд░реА":

рдкреЗрдбрд╝ред рднрд╛рдЧ 1
рдкреЗрдбрд╝ред рднрд╛рдЧ реи
рд╡рд┐рд░рд▓ рд╕рд░рдгред рднрд╛рдЧ рей

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

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

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

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

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

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

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

рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рд▓реЗрдирджреЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: TSTART , TCOMMIT , TROLLBACK ред

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 

рдпрд╣ рдХрдорд╛рдВрдб рдЬрдмрд░рди рдмрд┐рдЬрд▓реА рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ SIGKILL рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреБрд░рдВрдд рд░реЛрдХрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИред

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

 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. рд╕рдВрдЧрддрд┐


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

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

 ^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

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

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

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

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

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

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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдореБрдЦреНрдп рдереНрд░реЗрдб рд╕реЗ рд▓реЗрдирджреЗрди рдореЗрдВ рдкрд░рд┐рдЪрд╛рд▓рди рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рд╣реИ рдпрд╛ рдирд╣реАрдВред 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 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

рд╡реНрдпрдХреНрддрд┐ 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 

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

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


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

рддрд╛рд▓реЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ READ UNCOMMITED рд╣реИ, рдФрд░ рддрд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕реЗ SERIALIZE рд╕реНрддрд░ рддрдХ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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


All Articles