เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบฅเบฐเบšเบปเบš InterSystems IRIS เบ—เบปเปˆเบงเป‚เบฅเบ

เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบฅเบฐเบšเบปเบš InterSystems IRIS เบ—เบปเปˆเบงเป‚เบฅเบInterSystems IRIS DBMS เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™ - เบ—เบปเปˆเบงเป‚เบฅเบ. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฐเปเบˆเบซเบผเบฒเบเบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบกเบตเบชเบดเบ™เบ„เป‰เบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบซเบ™เป‰เบฒเบ—เบตเปˆเป„เบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เป‰เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เป„เบกเป‰, locks เปเบฅเบฐเบžเบฒเบชเบฒ ObjectScript เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ—เบปเปˆเบงเป‚เบฅเบเปƒเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก "เบ—เบปเปˆเบงเป‚เบฅเบเปเบกเปˆเบ™ swords treasures เบชเปเบฒเบฅเบฑเบšเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™":

เบ•เบปเป‰เบ™เป„เบกเป‰. เบžเบฒเบเบ—เบต 1
เบ•เบปเป‰เบ™เป„เบกเป‰. เบžเบฒเบเบ—เบต 2
arrays เบเบฐเปเบˆเบเบเบฐเบˆเบฒเบ. เบžเบฒเบเบ—เบต 3

เบ‚เป‰เบญเบเบชเบปเบ™เปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบขเบนเปˆเปƒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ, เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบ”เปเบ”เปˆ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ™เบตเป‰เปเบกเปˆเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบงเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ›เบปเบเบเบฐเบ•เบด. เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบซเบผเบฒเบ.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบฎเบนเป‰เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ•เป‰เบญเบ‡เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™ เป€เบญเบŠเบตเบ”เบต:

A - เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน (เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน). เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹.

C - เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡. เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบชเปเบฒเป€เบฅเบฑเบ”, เบชเบฐเบ–เบฒเบ™เบฐเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบชเบญเบ”เบ„เปˆเบญเบ‡เบžเบฒเบเปƒเบ™. เปƒเบ™เบซเบผเบฒเบเบงเบดเบ—เบต, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบตเป‰เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก, เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ SQL เบกเบฑเบ™เบเบฑเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เบตเบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”.

เบ‚เป‰เบญเบ - เป‚เบ”เบ”เบ”เปˆเบฝเบง. เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบเบฑเบ™เบšเปเปˆเบ„เบงเบ™เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

D - เบ—เบปเบ™เบ—เบฒเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบšเบฑเบ™เบซเบฒเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒ (เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™), เบšเปเปˆเบ„เบงเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ.

เบ—เบปเปˆเบงเป‚เบฅเบเปเบกเปˆเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™. เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบซเป‰เปเบฅเปˆเบ™เป„เบงเบชเบธเบ”เปƒเบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบˆเบณเบเบฑเบ”เบซเบผเบฒเบ. เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เป‚เบฅเบเป‚เบ”เบเปƒเบŠเป‰ เบฎเบนเบšเบžเบฒเบš docker IRIS เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™.

เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™ IRIS, เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰: TSTART, TCOMMIT, TROLBACK.

1. เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน

เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน. เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบˆเบฒเบ console เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

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)

- เบšเปเปˆ, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบญเบ”.

เบกเบฒเบฅเบญเบ‡เปƒเบŠเป‰เบ„เบณเบชเบฑเปˆเบ‡ rollback:

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.

^index(โ€˜Kamenevโ€™, โ€˜Sergeyโ€™, 1234567) = 1

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบก persona เปเบšเบšเบ™เบตเป‰:

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. เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง

เบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบ›เปˆเบฒเบ—เปเบฒเบกเบฐเบŠเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ„เบปเบ™เบžเป‰เบญเบกเบเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™, เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™.

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปเบกเปˆเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเป€เบงเบฅเบฒเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ„เบปเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเป‰เบญเบกเป†เบเบฑเบ™เบเบฑเบšเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบžเป‰เบญเบกเบเบฑเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบซเบผเบฒเบเป†เป„เบŸเบฅเปŒเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™.

เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ„เบงเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบกเบตเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เบžเบดเป€เบชเบ”เบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบชเบฐเบšเบฑเบš (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบกเบชเบฒเบ‚เบฒ, เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡. เบเบฒเบ™เบญเบญเบเปเบšเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบกเบฑเบ™.

เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบเบฐเบ—เปเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™. เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบšเบญเบฑเบ™เบญเบทเปˆเบ™, เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบงเบเบกเบฑเบ™เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

เบšเบฑเบ™เบซเบฒเบญเบตเบเบ›เบฐเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ (เบเปˆเบญเบ™เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ), เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เบชเบปเบกเบ„เบงเบ™เบ—เบตเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบญเบทเปˆเบ™เป†เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เป€เบŠเบดเปˆเบ‡เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เปƒเบ™โ€‹เบซเบผเบฒเบโ€‹เบงเบดโ€‹เบ—เบตโ€‹: เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡ snapshotsโ€‹, เปเบ–เบงโ€‹เป€เบเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบซเบผเบฒเบโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹.

เป€เบกเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเปเบŠเบเปเบŠเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบŠเบฑเบšเบชเบดเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง.

SQL เบเปเบฒเบ™เบปเบ” 4 เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง:

  • เบญเปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡
  • เบญเปˆเบฒเบ™ committed
  • เบญเปˆเบฒเบ™เบŠเป‰เบณเป„เบ”เป‰
  • SERIALIZable

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เปเบ•เปˆเบฅเบฐเบ‚เบฑเป‰เบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ•เปˆเบฅเบฐเบ‚เบฑเป‰เบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบเบทเบญเบšเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบ.

เบญเปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡ - เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบ•เปˆเปเบฒเบชเบธเบ”, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เป„เบงเบ—เบตเปˆเบชเบธเบ”. เบ—เบธเบฅเบฐเบเปเบฒเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เป‚เบ”เบเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

เบญเปˆเบฒเบ™ committed เปเบกเปˆเบ™เบฅเบฐเบ”เบฑเบšเบ•เปเปˆเป„เบ›เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบก. เบ—เบธเบฅเบฐเบเปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบเปˆเบญเบ™เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เบ—เบตเปˆเป€เบฎเบฑเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบง T1, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ—เบตเปˆเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเป„เบ”เป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ T2, T3 ... Tn, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš T1, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เปƒเบ™ T1 เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡. เบ›เบฐเบเบปเบ”เบเบฒเบ™เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™.

เบญเปˆเบฒเบ™เบŠเป‰เบณเป„เบ”เป‰ โ€” เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบเบฒเบ™โ€‹เป‚เบ”เบ”โ€‹เบ”เปˆเบฝเบงโ€‹เบ™เบตเป‰โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ›เบฐโ€‹เบเบปเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป€เบฅโ€‹เบทเป‰เบกโ€‹เบ„เบทเบ™โ€‹เป„เบ”เป‰โ€‹, เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบˆเบดเบ‡โ€‹เบ—เบตเปˆโ€‹เบงเปˆเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ„เบปเบ™โ€‹, เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ‚เบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปเบฅเบฐโ€‹เป€เบกเบทเปˆเบญโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เบทเบ™โ€‹เปƒเบซเบกเปˆโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบ—เบธโ€‹เบฅเบฐโ€‹เบเปเบฒโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹, เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเบฒเบ snapshot เป„เบ”เป‰โ€‹. เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™ phantom เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ™เบตเป‰. เบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบ–เบงเปƒเบซเบกเปˆเบ—เบตเปˆเบ–เบทเบเป€เบžเบตเปˆเบกเป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ‚เบฐเบซเบ™เบฒเบ™.

SERIALIZable - เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบชเบนเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ insulationโ€‹. เบกเบฑเบ™เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเป‚เบ”เบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ (เบเบฒเบ™เบญเปˆเบฒเบ™เบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡) เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเบเบฑเบšเบ—เบธเบฅเบฐเบเปเบฒเบญเบทเปˆเบ™เป†เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”.

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบกเบตเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒเบˆเบฒเบเบซเบปเบงเบ‚เปเป‰เบ•เบปเป‰เบ™เบ•เป. เปƒเบซเป‰เป€เบ›เบตเบ” 2 เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก terminal.

Kill ^t

Write ^t(1)
2

TSTART
Set ^t(1)=2

เบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง. เบเบฐเบ—เบนเป‰เบซเบ™เบถเปˆเบ‡เป€เบซเบฑเบ™เบงเปˆเบฒเบœเบนเป‰เบ—เบตเปˆเบชเบญเบ‡เบ—เบตเปˆเป€เบ›เบตเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบซเบเบฑเบ‡.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ‚เบญเบ‡เบเบฐเบ—เบนเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบตเบซเบเบฑเบ‡เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบžเบฒเบเปƒเบ™เบžเบงเบเบกเบฑเบ™.

เปƒเบซเป‰เป€เบ›เบตเบ” 2 เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก terminal เปเบฅเบฐเป€เบ›เบตเบ” 2 เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™.

kill ^t
TSTART
Write ^t(1)
3

TSTART
Set ^t(1)=3

เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ‚เบฐเบซเบ™เบฒเบ™เป€เบšเบดเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”, เปเบ•เปˆเบเบฑเบ‡เป€เบ›เบฑเบ™เบฅเบฐเบ”เบฑเบšเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”, เบญเปˆเบฒเบ™ UNCOMMITED.

เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เบซเบงเบฑเบ‡เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบ—เบปเปˆเบงเป‚เบฅเบ, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™เบชเบฐเป€เบซเบกเบต.

เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบงเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปƒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ?

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ.

เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ—เบตเปˆเบชเบนเบ‡เบ—เบตเปˆเบชเบธเบ”, SERIALIZE, เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เป€เบŠเบดเปˆเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ—เบฐเบเบฑเบ™.

เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ locks เบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐเปƒเบ™ ObjectScript, เป€เบŠเบดเปˆเบ‡เบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบ: เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด, เป€เบžเบตเปˆเบก, locking เบซเบผเบฒเบเบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡. LOCK.

เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ—เบตเปˆเบ•เปเปˆเบฒเบเบงเปˆเบฒเปเบกเปˆเบ™เบเบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเป‚เบ”เบเปƒเบŠเป‰ locks.

เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ locks เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™, เปเบ•เปˆเบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ locks เปเบšเปˆเบ‡เบ›เบฑเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰เบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™.

เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเบเบฑเบ”เบชเบญเบ‡เป„เบฅเบเบฐเปƒเบ™เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเปเบฅเบฐเบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”:

โ†’ เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบชเบญเบ‡เป„เบฅเบเบฐ
โ†’ เบเบฒเบ™เบฅเบฑเบญเบเบชเบญเบ‡เป„เบฅเบเบฐ

เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡, เปเบ•เปˆเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†. เบงเบดเบ—เบตเบเบฒเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ™เบตเป‰?

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ locks, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ—เบตเปˆเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบชเบญเบ”เบ„เปˆเบญเบ‡. เปเบฅเบฐเบ—เบธเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ‚เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เบ—เบตเปˆเบ•เบปเบเบฅเบปเบ‡เบˆเบฐเบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบ locks.

เบเบฒเบ™เบฅเบฑเบญเบเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเบกเบฒเปƒเบŠเป‰เบ„เบทเบ™เป„เบ”เป‰โ€”เบซเบผเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เป„เบ”เป‰. locks เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™, i.e. เบžเบงเบเบกเบฑเบ™เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡.

เบฅเบฑเบญเบเบชเบฐเป€เบžเบฒเบฐเปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™ - เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฝเบงเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบฅเบฑเบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰. เบฅเบฑเบญเบเบชเบฐเป€เบžเบฒเบฐเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ:

  1. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปƒเบ”เบเปเปˆเบ•เบฒเบกเบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒ
  2. เบžเบฝเบ‡เปเบ•เปˆเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบฑเบญเบเบฎเปˆเบงเบกเบเบฑเบ™เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เปเบฅเบฐเป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบตเบเบฒเบ™เบฅเบฑเบญเบเบชเบฐเป€เบžเบฒเบฐ.

เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบฅเบฐเบšเบปเบš InterSystems IRIS เบ—เบปเปˆเบงเป‚เบฅเบ

เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปเบ„เบšเบเบงเปˆเบฒ, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเบฒเบงเบเบงเปˆเบฒเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบกเบฑเบ™, เปเบ•เปˆเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบžเบฒเบเปƒเบ™เบกเบฑเบ™เบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

READ_COMMITTED โ€” เป‚เบ”เบเป€เบ™เบทเป‰เบญเปเบ—เป‰เปเบฅเป‰เบงเบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบธเปˆเบ‡เบซเบกเบฑเป‰เบ™เบˆเบฒเบเบซเบปเบงเบ‚เปเป‰เบญเบทเปˆเบ™เป†. เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒเบญเบทเปˆเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบชเบฑเบ™เบเบฒเป„เบงเป‰, เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบชเบฐเบšเบฑเบšเป€เบเบปเปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™.

เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฐเบซเบ™เบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบฅเบฑเบญเบเบ—เบตเปˆเบˆเบฐเบ›เปˆเบญเบเบญเบญเบเบกเบฒ.

เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ tricks เบžเบดเป€เบชเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เบชเบฐเบšเบฑเบšเป€เบเบปเปˆเบฒเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™ IRIS, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ”เป‰เบงเบ locks.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰ locks เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบญเปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡.

เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ–เบฒเบ™เบœเบนเป‰เปƒเบŠเป‰ ^ เบ„เบปเบ™เบ—เบตเปˆเป‚เบญเบ™เป€เบ‡เบดเบ™เปƒเบซเป‰เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบโ€‹เบˆเบฒเบโ€‹เบšเบธเบโ€‹เบ„เบปเบ™ 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 เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ debiting เบˆเบฐเบ•เป‰เบญเบ‡เบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบ•เบฑเบ™เบชเบฐเป€เบžเบฒเบฐ (เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™):

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

เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบชเบฐเบ–เบฒเบ™เบฐเบšเบฑเบ™เบŠเบตเปƒเบ™เบšเบฑเบ™เบŠเบตเบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ lock เบฎเปˆเบงเบกเบเบฑเบ™เบซเบผเบทเบšเปเปˆเปƒเบŠเป‰เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”:

LOCK +^person(123)#โ€Sโ€
Write ^person(123)

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบเบทเบญเบšเบ—เบฑเบ™เบ—เบต (เปƒเบซเป‰เบ‚เป‰เบญเบเป€เบ•เบทเบญเบ™เป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบ—เบปเปˆเบงเป‚เบฅเบเป€เบ›เบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบเบงเปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰เบซเบผเบธเบ”เบฅเบปเบ‡.

เบญเปˆเบฒเบ™เบŠเป‰เบณเป„เบ”เป‰ - เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบžเป‰เบญเบกเบเบฑเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เปƒเบชเปˆ lock เบฎเปˆเบงเบกเบเบฑเบ™เปƒเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐ locks เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เปเบ›เบ‡.

เป‚เบŠเบเบ”เบต, เบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ LOCK เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบญเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡ locks เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบกเบตเบซเบผเบฒเบ, เปƒเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ”เบฝเบง.

LOCK +^person(123, amount)#โ€Sโ€
ั‡ั‚ะตะฝะธะต ^person(123, amount)

เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป† (เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰ เบเบฐเบ—เบนเป‰เบ‚เบฐเปœเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™ ^person(123, เบˆเบณเบ™เบงเบ™), เปเบ•เปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”)

LOCK +^person(123, amount)
ะธะทะผะตะฝะตะฝะธะต ^person(123, amount)
LOCK -^person(123, amount)

ั‡ั‚ะตะฝะธะต ^person(123, amount)
LOCK -^person(123, amount)#โ€Sโ€

เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™ locks เปเบเบโ€‹เป‚เบ”เบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบซเบกเบฒเบโ€‹เบˆเบธเบ”โ€‹, เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฒเบกโ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹, เปเบ•เปˆโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เปเบ™เบงโ€‹เบ™เบตเป‰โ€‹:

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

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™.

SERIALize โ€” เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบฅเบฑเบญเบโ€‹เป€เบžเบทเปˆเบญโ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบ—เบธโ€‹เบฅเบฐโ€‹เบเปเบฒโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹. เบชเปเบฒเบฅเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰, locks เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ„เบงเบ™เบˆเบฐเบชเบฐเป€เบžเบฒเบฐเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบชเบธเบ”เบ‚เบญเบ‡เป‚เบฅเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบซเบฑเบเป€เบ‡เบดเบ™เปƒเบ™เบ„เบปเบ™ ^ เบ„เบปเบ™เบ—เบปเปˆเบงเป‚เบฅเบ, เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง SERIALIZE เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบ‡เบดเบ™เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เบ”เบฝเบงเบเบฑเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡.

4. เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเบ”เปเบ‚เบ‡เบ‚เบญเบ‡เบ–เบฑเบ‡เป‚เบ”เบเปƒเบŠเป‰

docker kill my-iris

เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบ”เบต. เบšเปเปˆเบžเบปเบšเบšเบฑเบ™เบซเบฒเปƒเบ”เป†.

เบชเบฐเบซเบฅเบธเบš

เบชเปเบฒเบฅเบฑเบšเบ—เบปเปˆเบงเป‚เบฅเบ, InterSystems IRIS เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปเบฅเบฐเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰. เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ—เบปเปˆเบงเป‚เบฅเบ, เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ‚เบญเบ‡เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เป€เบŠเบฑเปˆเบ™: เบเบฐเปเบˆเบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”.

เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เป‚เบฅเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปƒเบŠเป‰เบฅเบฑเบญเบเปเบกเปˆเบ™เบญเปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ locks เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เป„เบ”เป‰เป€เบ–เบดเบ‡เบฅเบฐเบ”เบฑเบš SERIALIZE.

เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบซเบผเบฒเบเบ‚เบทเป‰เบ™เบเบฑเบšเบ—เบฑเบเบชเบฐเบ‚เบญเบ‡เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก: locks เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เบซเบผเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบญเปˆเบฒเบ™, เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเป‚เบ”เบ”เบ”เปˆเบฝเบงเบชเบนเบ‡, เปเบฅเบฐ locks เบชเบฐเป€เบžเบฒเบฐเปเบ„เบšเบซเบผเบฒเบ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™