ืขืกืงืื•ืช ื‘-InterSystems IRIS ื”ืขื•ืœืžื™ื•ืช

ืขืกืงืื•ืช ื‘-InterSystems IRIS ื”ืขื•ืœืžื™ื•ืชื”-InterSystems IRIS DBMS ืชื•ืžืš ื‘ืžื‘ื ื™ื ืžืขื ื™ื™ื ื™ื ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื - ื’ืœื•ื‘ืœื™ื™ื. ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ืžื“ื•ื‘ืจ ื‘ืžืคืชื—ื•ืช ืžืจื•ื‘ื™ ืจืžื•ืช ืขื ื›ืœ ืžื™ื ื™ ื“ื‘ืจื™ื ื˜ื•ื‘ื™ื ื ื•ืกืคื™ื ื‘ืฆื•ืจืช ื˜ืจื ื–ืงืฆื™ื•ืช, ืคื•ื ืงืฆื™ื•ืช ืžื”ื™ืจื•ืช ืœืžืขื‘ืจ ืขืฆื™ ื ืชื•ื ื™ื, ืžื ืขื•ืœื™ื ื•ืฉืคืช ObjectScript ืžืฉืœื”.

ืงืจื ืขื•ื“ ืขืœ ื’ืœื•ื‘ืœื™ื ื‘ืกื“ืจืช ื”ืžืืžืจื™ื "ื’ืœื•ื‘ืœื™ื ื”ื ื—ืจื‘ื•ืช ืื•ืฆืจ ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื":

ืขืฆื™ื. ื—ืœืง 1
ืขืฆื™ื. ื—ืœืง 2
ืžืขืจื›ื™ื ื“ืœื™ืœื™ื. ื—ืœืง 3

ื”ืชืขื ื™ื™ื ืชื™ ื›ื™ืฆื“ ืžื‘ืฆืขื™ื ืขืกืงืื•ืช ื‘ื’ืœื•ื‘ืœื™ื•ืช, ืื™ืœื• ืชื›ื•ื ื•ืช ื™ืฉ. ืื—ืจื™ ื”ื›ืœ, ืžื“ื•ื‘ืจ ื‘ืžื‘ื ื” ืฉื•ื ื” ืœื—ืœื•ื˜ื™ืŸ ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ืžื”ื˜ื‘ืœืื•ืช ื”ืจื’ื™ืœื•ืช. ืจืžื” ื”ืจื‘ื” ื™ื•ืชืจ ื ืžื•ื›ื”.

ื›ื™ื“ื•ืข ืžื”ืชื™ืื•ืจื™ื” ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื, ื™ื™ืฉื•ื ื˜ื•ื‘ ืฉืœ ื˜ืจื ื–ืงืฆื™ื•ืช ื—ื™ื™ื‘ ืœืขืžื•ื“ ื‘ื“ืจื™ืฉื•ืช ACID:

ื - ืื˜ื•ืžื™ (ืื˜ื•ืžื™ื•ืช). ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืฉื ืขืฉื• ื‘ืขืกืงื” ืื• ืœื ื ืจืฉืžื• ื›ืœืœ.

ื’ - ืขืงื‘ื™ื•ืช. ืœืื—ืจ ื”ืฉืœืžืช ืขืกืงื”, ื”ืžืฆื‘ ื”ืœื•ื’ื™ ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืขืงื‘ื™ ืคื ื™ืžื™. ื‘ืžื•ื‘ื ื™ื ืจื‘ื™ื ื“ืจื™ืฉื” ื–ื• ื ื•ื’ืขืช ืœืžืชื›ื ืช, ืืš ื‘ืžืงืจื” ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ SQL ื”ื™ื ื ื•ื’ืขืช ื’ื ืœืžืคืชื—ื•ืช ื–ืจื™ื.

ืื ื™ - ืœื‘ื•ื“ื“. ืขืกืงืื•ืช ื”ืคื•ืขืœื•ืช ื‘ืžืงื‘ื™ืœ ืœื ืืžื•ืจื•ืช ืœื”ืฉืคื™ืข ื–ื• ืขืœ ื–ื•.

D - ืขืžื™ื“. ืœืื—ืจ ื”ืฉืœืžืช ืขืกืงื” ืžื•ืฆืœื—ืช, ื‘ืขื™ื•ืช ื‘ืจืžื•ืช ื ืžื•ื›ื•ืช ื™ื•ืชืจ (ื”ืคืกืงืช ื—ืฉืžืœ, ืœืžืฉืœ) ืœื ืืžื•ืจื•ืช ืœื”ืฉืคื™ืข ืขืœ ื”ื ืชื•ื ื™ื ืฉื”ืฉืชื ื• ืขืœ ื™ื“ื™ ื”ืขืกืงื”.

ื’ืœื•ื‘ืœื™ื ื”ื ืžื‘ื ื™ ื ืชื•ื ื™ื ืœื ืจืฆื™ื•ื ืœื™ื™ื. ื”ื ืชื•ื›ื ื ื• ืœืจื•ืฅ ืกื•ืคืจ ืžื”ื™ืจ ืขืœ ื—ื•ืžืจื” ืžื•ื’ื‘ืœืช ืžืื•ื“. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื™ื™ืฉื•ื ืขืกืงืื•ืช ื‘ื’ืœื•ื‘ืœื™ื ื‘ืืžืฆืขื•ืช ืชืžื•ื ื” ืจืฉืžื™ืช ืฉืœ IRIS Docker.

ื›ื“ื™ ืœืชืžื•ืš ื‘ืขืกืงืื•ืช ื‘- IRIS, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื•ืช ื”ื‘ืื•ืช: 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. ืขืงื‘ื™ื•ืช

ืžื›ื™ื•ื•ืŸ ืฉื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ื’ืœื•ื‘ืœื™ื, ืžืคืชื—ื•ืช ื ื•ืฆืจื™ื ื’ื ืขืœ ื’ืœื•ื‘ืœื™ื (ืœื”ื–ื›ื™ืจืš ืฉื’ืœื•ื‘ืœ ื”ื•ื ืžื‘ื ื” ื‘ืจืžื” ื ืžื•ื›ื” ื™ื•ืชืจ ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ืžืืฉืจ ื˜ื‘ืœื” ืจืœืฆื™ื•ื ื™ืช), ื›ื“ื™ ืœืขืžื•ื“ ื‘ื“ืจื™ืฉืช ื”ืขืงื‘ื™ื•ืช, ื™ืฉ ืœื›ืœื•ืœ ืฉื™ื ื•ื™ ื‘ืžืคืชื— ื‘ืื•ืชื” ืขืกืงื” ื›ืžื• ืฉื™ื ื•ื™ ื‘ื’ืœื•ื‘ืœื™.

ืœื“ื•ื’ืžื”, ื™ืฉ ืœื ื• ืื“ื ื’ืœื•ื‘ืœื™, ืฉื‘ื• ืื ื• ืžืื—ืกื ื™ื ืื™ืฉื™ื ื•ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘-TIN ื›ืžืคืชื—.

^person(1234567, โ€˜firstnameโ€™) = โ€˜Sergeyโ€™
^person(1234567, โ€˜lastnameโ€™) = โ€˜Kamenevโ€™
^person(1234567, โ€˜phoneโ€™) = โ€˜+74995555555
...

ืขืœ ืžื ืช ืœื‘ืฆืข ื—ื™ืคื•ืฉ ืžื”ื™ืจ ืœืคื™ ืฉื ืžืฉืคื—ื” ื•ืฉื ืคืจื˜ื™, ื™ืฆืจื ื• ืืช ืžืคืชื— ^index.

^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. ื‘ื™ื“ื•ื“

ื›ืืŸ ืžืชื—ื™ืœื•ืช ื”ืคืจื. ืžืฉืชืžืฉื™ื ืจื‘ื™ื ืขื•ื‘ื“ื™ื ื‘ื•-ื–ืžื ื™ืช ืขืœ ืื•ืชื• ืžืกื“ ื ืชื•ื ื™ื, ื•ืžืฉื ื™ื ืืช ืื•ืชื ื ืชื•ื ื™ื.

ื”ืžืฆื‘ ื“ื•ืžื” ืœื–ื” ืฉืžืฉืชืžืฉื™ื ืจื‘ื™ื ืขื•ื‘ื“ื™ื ื‘ื•-ื–ืžื ื™ืช ืขื ืื•ืชื• ืžืื’ืจ ืงื•ื“ ื•ืžื ืกื™ื ืœื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื‘ื•-ื–ืžื ื™ืช ืœืงื‘ืฆื™ื ืจื‘ื™ื ื‘ื•-ื–ืžื ื™ืช.

ืžืกื“ ื”ื ืชื•ื ื™ื ืฆืจื™ืš ืœืกื“ืจ ืืช ื”ื›ืœ ื‘ื–ืžืŸ ืืžืช. ื‘ื”ืชื—ืฉื‘ ื‘ื›ืš ืฉื‘ื—ื‘ืจื•ืช ืจืฆื™ื ื™ื•ืช ื™ืฉ ืืคื™ืœื• ืื“ื ืžื™ื•ื—ื“ ืฉืื—ืจืื™ ืขืœ ื‘ืงืจืช ื’ืจืกืื•ืช (ืขืœ ืžื™ื–ื•ื’ ืกื ื™ืคื™ื, ืคืชืจื•ืŸ ืกื›ืกื•ื›ื™ื ื•ื›ื•'), ื•ืืช ื›ืœ ื–ื” ืขืœ ื”ืžืื’ืจ ืœืขืฉื•ืช ื‘ื–ืžืŸ ืืžืช, ืžื•ืจื›ื‘ื•ืช ื”ืžืฉื™ืžื” ื•ื ื›ื•ื ื•ืช ื”- ืขื™ืฆื•ื‘ ืžืกื“ ื ืชื•ื ื™ื ื•ืงื•ื“ ืฉืžืฉืจืช ืื•ืชื•.

ืžืกื“ ื”ื ืชื•ื ื™ื ืื™ื ื• ื™ื›ื•ืœ ืœื”ื‘ื™ืŸ ืืช ืžืฉืžืขื•ืช ื”ืคืขื•ืœื•ืช ืฉืžื‘ืฆืขื™ื ื”ืžืฉืชืžืฉื™ื ืขืœ ืžื ืช ืœืžื ื•ืข ื”ืชื ื’ืฉื•ื™ื•ืช ืื ื”ื ืขื•ื‘ื“ื™ื ืขืœ ืื•ืชื ื ืชื•ื ื™ื. ื–ื” ื™ื›ื•ืœ ืœื‘ื˜ืœ ืจืง ืขืกืงื” ืื—ืช ืฉืžืชื ื’ืฉืช ืขื ืื—ืจืช, ืื• ืœื‘ืฆืข ืื•ืชืŸ ื‘ืจืฆืฃ.

ื‘ืขื™ื” ื ื•ืกืคืช ื”ื™ื ืฉื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ืขืกืงื” (ืœืคื ื™ commit), ืžืฆื‘ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืขืœื•ืœ ืœื”ื™ื•ืช ืœื ืขืงื‘ื™, ื•ืœื›ืŸ ืจืฆื•ื™ ืฉืœืขืกืงืื•ืช ืื—ืจื•ืช ืœื ืชื”ื™ื” ื’ื™ืฉื” ืœืžืฆื‘ ื”ื‘ืœืชื™ ืขืงื‘ื™ ืฉืœ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื, ืฉืžื•ืฉื’ ื‘ืžืื’ืจื™ ืžื™ื“ืข ื™ื—ืกื™ื™ื ื‘ืžื•ื‘ื ื™ื ืจื‘ื™ื: ื™ืฆื™ืจืช ืชืฆืœื•ืžื™ ืžืฆื‘, ืฉื•ืจื•ืช ื‘ืจื™ื‘ื•ื™ ื’ืจืกืื•ืช ื•ื›ื•'.

ื‘ื‘ื™ืฆื•ืข ืขืกืงืื•ืช ื‘ืžืงื‘ื™ืœ, ื—ืฉื•ื‘ ืœื ื• ืฉื”ืŸ ืœื ื™ืคืจื™ืขื• ื–ื• ืœื–ื•. ื–ื• ืชื›ื•ื ืช ื”ื‘ื™ื“ื•ื“.

SQL ืžื’ื“ื™ืจ 4 ืจืžื•ืช ื‘ื™ื“ื•ื“:

  • ืงืจื ืœืœื ืžื—ื•ื™ื‘ื•ืช
  • ืงืจื ืžื—ื•ื™ื‘
  • ืงืจื™ืื” ื ื™ืชื ืช ืœื—ื–ืจื”
  • ื ื™ืชืŸ ืœืกื™ื“ืจื”

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื›ืœ ืจืžื” ื‘ื ืคืจื“. ื”ืขืœื•ื™ื•ืช ืฉืœ ื™ื™ืฉื•ื ื›ืœ ืจืžื” ื’ื“ืœื•ืช ื›ืžืขื˜ ื‘ืื•ืคืŸ ืืงืกืคื•ื ื ืฆื™ืืœื™.

ืงืจื ืœืœื ืžื—ื•ื™ื‘ื•ืช - ื–ื•ื”ื™ ืจืžืช ื”ื‘ื™ื“ื•ื“ ื”ื ืžื•ื›ื” ื‘ื™ื•ืชืจ, ืืš ื™ื—ื“ ืขื ื–ืืช ื”ืžื”ื™ืจื” ื‘ื™ื•ืชืจ. ืขืกืงืื•ืช ื™ื›ื•ืœื•ืช ืœืงืจื•ื ืฉื™ื ื•ื™ื™ื ืฉื ืขืฉื• ืขืœ ื™ื“ื™ ื–ื”.

ืงืจื ืžื—ื•ื™ื‘ ื”ื™ื ื”ืจืžื” ื”ื‘ืื” ืฉืœ ื”ื‘ื™ื“ื•ื“, ืฉื”ื™ื ืคืฉืจื”. ืขืกืงืื•ืช ืื™ื ืŸ ื™ื›ื•ืœื•ืช ืœืงืจื•ื ืืช ื”ืฉื™ื ื•ื™ื™ื ืฉืœ ื–ื” ืœืคื ื™ ื”ื”ืชื—ื™ื™ื‘ื•ืช, ืืš ื”ืŸ ื™ื›ื•ืœื•ืช ืœืงืจื•ื ืืช ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืฉื ืขืฉื• ืœืื—ืจ ื”ื”ืชื—ื™ื™ื‘ื•ืช.

ืื ื™ืฉ ืœื ื• ืขืกืงื” ืืจื•ื›ื” T1, ืฉื‘ืžื”ืœื›ื” ื”ืชื‘ืฆืขื• ื”ืชื—ื™ื™ื‘ื•ื™ื•ืช ื‘ื˜ืจื ื–ืงืฆื™ื•ืช T2, T3 ... Tn, ืฉืขื‘ื“ื• ืขื ืื•ืชื ื ืชื•ื ื™ื ื›ืžื• T1, ืื– ื›ืฉืžื‘ืงืฉื™ื ื ืชื•ื ื™ื ื‘-T1 ื ืงื‘ืœ ื‘ื›ืœ ืคืขื ืชื•ืฆืื” ืฉื•ื ื”. ืชื•ืคืขื” ื–ื• ื ืงืจืืช ืงืจื™ืื” ื‘ืœืชื™ ื—ื•ื–ืจืช.

ืงืจื™ืื” ื ื™ืชื ืช ืœื—ื–ืจื” - ื‘ืจืžืช ื‘ื™ื“ื•ื“ ื–ื• ืื™ืŸ ืœื ื• ืชื•ืคืขื” ืฉืœ ืงืจื™ืื” ื‘ืœืชื™ ื—ื•ื–ืจืช, ื‘ืฉืœ ื”ืขื•ื‘ื“ื” ืฉืœื›ืœ ื‘ืงืฉื” ืœืงืจื™ืืช ื ืชื•ื ื™ื ื ื•ืฆืจืช ืชืžื•ื ืช ืžืฆื‘ ืฉืœ ื ืชื•ื ื™ ื”ืชื•ืฆืื” ื•ื›ืืฉืจ ื ืขืฉื” ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืื•ืชื” ืขืกืงื”, ื”ื ืชื•ื ื™ื ืžืชืžื•ื ืช ื”ืžืฆื‘ ืžืฉืžืฉ. ืขื ื–ืืช, ื ื™ืชืŸ ืœืงืจื•ื ื ืชื•ื ื™ ืคื ื˜ื•ื ื‘ืจืžืช ื‘ื™ื“ื•ื“ ื–ื•. ื–ื” ืžืชื™ื™ื—ืก ืœืงืจื™ืืช ืฉื•ืจื•ืช ื—ื“ืฉื•ืช ืฉื ื•ืกืคื• ืขืœ ื™ื“ื™ ืขืกืงืื•ืช ืžื—ื•ื™ื‘ื•ืช ืžืงื‘ื™ืœื•ืช.

ื ื™ืชืŸ ืœืกื™ื“ืจื” - ืจืžืช ื”ื‘ื™ื“ื•ื“ ื”ื’ื‘ื•ื”ื” ื‘ื™ื•ืชืจ. ื”ื•ื ืžืื•ืคื™ื™ืŸ ื‘ืขื•ื‘ื“ื” ืฉื”ื ืชื•ื ื™ื ื”ืžืฉืžืฉื™ื ื‘ื›ืœ ื“ืจืš ื‘ืขืกืงื” (ืงืจื™ืื” ืื• ืฉื™ื ื•ื™) ื”ื•ืคื›ื™ื ืœื–ืžื™ื ื™ื ืœืขืกืงืื•ืช ืื—ืจื•ืช ืจืง ืœืื—ืจ ื”ืฉืœืžืช ื”ืขืกืงื” ื”ืจืืฉื•ื ื”.

ืจืืฉื™ืช, ื‘ื•ืื• ื ื‘ื™ืŸ ืื ื™ืฉ ื‘ื™ื“ื•ื“ ืฉืœ ืคืขื•ืœื•ืช ื‘ืขืกืงื” ืžื”ืฉืจืฉื•ืจ ื”ืจืืฉื™. ื‘ื•ืื• ื ืคืชื— 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, ืคื™ืจื•ืฉื” ืฉื”ืชื•ืฆืื” ืฉืœ ืขืกืงืื•ืช ื”ืžื‘ื•ืฆืขื•ืช ื‘ืžืงื‘ื™ืœ ืฉื•ื•ื” ืขืจืš ืœื‘ื™ืฆื•ืขืŸ ื‘ืจืฆืฃ, ืžื” ืฉืžื‘ื˜ื™ื— ื”ื™ืขื“ืจ ื”ืชื ื’ืฉื•ื™ื•ืช.

ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ื–ืืช ื‘ืืžืฆืขื•ืช ืžื ืขื•ืœื™ื ื—ื›ืžื™ื ื‘-ObjectScript, ืฉื™ืฉ ืœื”ื ื”ืจื‘ื” ืฉื™ืžื•ืฉื™ื ืฉื•ื ื™ื: ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ื ืขื™ืœื” ืจื’ื™ืœื”, ืžืฆื˜ื‘ืจืช, ืžืจื•ื‘ื” ืขื ื”ืคืงื•ื“ื” ืœื ืขื•ืœ.

ืจืžื•ืช ื‘ื™ื“ื•ื“ ื ืžื•ื›ื•ืช ื™ื•ืชืจ ื”ืŸ ืคืฉืจื•ืช ืฉื ื•ืขื“ื• ืœื”ื’ื‘ื™ืจ ืืช ืžื”ื™ืจื•ืช ืžืกื“ ื”ื ืชื•ื ื™ื.

ื‘ื•ืื• ื ืจืื” ื›ื™ืฆื“ ื ื•ื›ืœ ืœื”ืฉื™ื’ ืจืžื•ืช ืฉื•ื ื•ืช ืฉืœ ื‘ื™ื“ื•ื“ ื‘ืืžืฆืขื•ืช ืžื ืขื•ืœื™ื.

ืžืคืขื™ืœ ื–ื” ืžืืคืฉืจ ืœืš ืœืงื—ืช ืœื ืจืง ืžื ืขื•ืœื™ื ื‘ืœืขื“ื™ื™ื ื”ื“ืจื•ืฉื™ื ืœืฉื™ื ื•ื™ ื ืชื•ื ื™ื, ืืœื ืžื” ืฉื ืงืจื ืžื ืขื•ืœื™ื ืžืฉื•ืชืคื™ื, ืฉื™ื›ื•ืœื™ื ืœืงื—ืช ืžืกืคืจ ืฉืจืฉื•ืจื™ื ื‘ืžืงื‘ื™ืœ ื›ืืฉืจ ื”ื ืฆืจื™ื›ื™ื ืœืงืจื•ื ื ืชื•ื ื™ื ืฉืืกื•ืจ ืœืฉื ื•ืช ืขืœ ื™ื“ื™ ืชื”ืœื™ื›ื™ื ืื—ืจื™ื ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืงืจื™ืื”.

ืžื™ื“ืข ื ื•ืกืฃ ืขืœ ืฉื™ื˜ืช ื”ื—ืกื™ืžื” ื”ื“ื•-ืฉืœื‘ื™ืช ื‘ืจื•ืกื™ืช ื•ื‘ืื ื’ืœื™ืช:

โ†’ ื—ืกื™ืžื” ื“ื• ืคืื–ื™ืช
โ†’ ื ืขื™ืœื” ื“ื• ืคืื–ื™ืช

ื”ืงื•ืฉื™ ื”ื•ื ืฉื‘ืžื”ืœืš ืขืกืงื” ืžืฆื‘ ืžืกื“ ื”ื ืชื•ื ื™ื ืขืฉื•ื™ ืœื”ื™ื•ืช ืœื ืขืงื‘ื™, ืื‘ืœ ื”ื ืชื•ื ื™ื ื”ืœื ืขืงื‘ื™ื™ื ื”ืืœื” ื’ืœื•ื™ื™ื ืœืชื”ืœื™ื›ื™ื ืื—ืจื™ื. ืื™ืš ืœื”ื™ืžื ืข ืžื›ืš?

ื‘ืืžืฆืขื•ืช ืžื ืขื•ืœื™ื ื ื™ืฆื•ืจ ื—ืœื•ื ื•ืช ื ืจืื•ืช ื‘ื”ื ืžืฆื‘ ืžืกื“ ื”ื ืชื•ื ื™ื ื™ื”ื™ื” ืขืงื‘ื™. ื•ื›ืœ ื”ื’ื™ืฉื” ืœื—ืœื•ื ื•ืช ืจืื•ืช ื›ืืœื” ืฉืœ ื”ืžื“ื™ื ื” ื”ืžื•ืกื›ืžืช ืชื”ื™ื” ื ืฉืœื˜ืช ืขืœ ื™ื“ื™ ืžื ืขื•ืœื™ื.

ืžื ืขื•ืœื™ื ืžืฉื•ืชืคื™ื ืขืœ ืื•ืชื ื ืชื•ื ื™ื ื ื™ืชื ื™ื ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ - ืžืกืคืจ ืชื”ืœื™ื›ื™ื ื™ื›ื•ืœื™ื ืœืงื—ืช ืื•ืชื. ืžื ืขื•ืœื™ื ืืœื• ืžื•ื ืขื™ื ืžืชื”ืœื™ื›ื™ื ืื—ืจื™ื ืœืฉื ื•ืช ื ืชื•ื ื™ื, ื›ืœื•ืžืจ. ื”ื ืžืฉืžืฉื™ื ืœื™ืฆื™ืจืช ื—ืœื•ื ื•ืช ืฉืœ ืžืฆื‘ ืžืกื“ ื ืชื•ื ื™ื ืขืงื‘ื™.

ืžื ืขื•ืœื™ื ื‘ืœืขื“ื™ื™ื ืžืฉืžืฉื™ื ืœืฉื™ื ื•ื™ื™ ื ืชื•ื ื™ื - ืจืง ืชื”ืœื™ืš ืื—ื“ ื™ื›ื•ืœ ืœืงื—ืช ืžื ืขื•ืœ ื›ื–ื”. ืžื ืขื•ืœ ื‘ืœืขื“ื™ ื ื™ืชืŸ ืœืงื—ืช ืขืœ ื™ื“ื™:

  1. ื›ืœ ืชื”ืœื™ืš ืื ื”ื ืชื•ื ื™ื ื—ื•ืคืฉื™ื™ื
  2. ืจืง ื”ืชื”ืœื™ืš ืฉื™ืฉ ืœื• ื ืขื™ืœื” ืžืฉื•ืชืคืช ืขืœ ื”ื ืชื•ื ื™ื ื”ืœืœื• ื•ื”ื™ื” ื”ืจืืฉื•ืŸ ืฉื‘ื™ืงืฉ ื ืขื™ืœื” ื‘ืœืขื“ื™ืช.

ืขืกืงืื•ืช ื‘-InterSystems IRIS ื”ืขื•ืœืžื™ื•ืช

ื›ื›ืœ ืฉื—ืœื•ืŸ ื”ื ืจืื•ืช ืฆืจ ื™ื•ืชืจ, ืชื”ืœื™ื›ื™ื ืื—ืจื™ื ืฆืจื™ื›ื™ื ืœื—ื›ื•ืช ืœื• ื™ื•ืชืจ, ืืš ืžืฆื‘ ืžืกื“ ื”ื ืชื•ื ื™ื ื‘ืชื•ื›ื• ื™ื›ื•ืœ ืœื”ื™ื•ืช ืขืงื‘ื™ ื™ื•ืชืจ.

READ_COMMITTED - ื”ืžื”ื•ืช ืฉืœ ืจืžื” ื–ื• ื”ื™ื ืฉืื ื• ืจื•ืื™ื ืจืง ื ืชื•ื ื™ื ืžื—ื•ื™ื‘ื™ื ืžืฉืจืฉื•ืจื™ื ืื—ืจื™ื. ืื ื”ื ืชื•ื ื™ื ื‘ืขืกืงื” ืื—ืจืช ืขื“ื™ื™ืŸ ืœื ื”ืชื—ื™ื™ื‘ื•, ืื– ืื ื• ืจื•ืื™ื ืืช ื”ื’ืจืกื” ื”ื™ืฉื ื” ืฉืœื•.

ื–ื” ืžืืคืฉืจ ืœื ื• ืœื”ืงื‘ื™ืœ ืืช ื”ืขื‘ื•ื“ื” ื‘ืžืงื•ื ืœื—ื›ื•ืช ืœืฉื—ืจื•ืจ ื”ืžื ืขื•ืœ.

ืœืœื ื˜ืจื™ืงื™ื ืžื™ื•ื—ื“ื™ื, ืœื ื ื•ื›ืœ ืœืจืื•ืช ืืช ื”ื’ืจืกื” ื”ื™ืฉื ื” ืฉืœ ื”ื ืชื•ื ื™ื ื‘-IRIS, ื•ืœื›ืŸ ื ืฆื˜ืจืš ืœื”ืกืชืคืง ื‘ืžื ืขื•ืœื™ื.

ื‘ื”ืชืื ืœื›ืš, ื ืฆื˜ืจืš ืœื”ืฉืชืžืฉ ื‘ืžื ืขื•ืœื™ื ืžืฉื•ืชืคื™ื ื›ื“ื™ ืœืืคืฉืจ ืงืจื™ืืช ื ืชื•ื ื™ื ืจืง ื‘ืจื’ืขื™ื ืฉืœ ืขืงื‘ื™ื•ืช.

ื ื ื™ื— ืฉื™ืฉ ืœื ื• ื‘ืกื™ืก ืžืฉืชืžืฉื™ื ^ืื“ื ืฉืžืขื‘ื™ืจ ื›ืกืฃ ืื—ื“ ืœืฉื ื™.

ืจื’ืข ื”ืขื‘ืจื” ืžืื“ื 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)

ืคืขื•ืœื•ืช ืื—ืจื•ืช (ื‘ืฉืœื‘ ื–ื” ืฉืจืฉื•ืจื™ื ืžืงื‘ื™ืœื™ื ืžื ืกื™ื ืœืฉื ื•ืช ืืช ^person(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.

ื”ื ื›ื•ื ื•ืช ื•ื”ืžื”ื™ืจื•ืช ืฉืœ ืขืกืงืื•ืช ื‘ื’ืœื•ื‘ืœื™ื•ืช ืชืœื•ื™ื•ืช ืžืื•ื“ ื‘ืžื™ื•ืžื ื•ืช ื”ืžืชื›ื ืช: ื›ื›ืœ ืฉืžืฉืชืžืฉื™ื ื‘ืžื ืขื•ืœื™ื ืžืฉื•ืชืคื™ื ื™ื•ืชืจ ื‘ืงืจื™ืื”, ื›ื›ืœ ืฉืจืžืช ื”ื‘ื™ื“ื•ื“ ื’ื‘ื•ื”ื” ื™ื•ืชืจ, ื•ื›ื›ืœ ืฉื ืœืงื—ื™ื ื™ื•ืชืจ ืžื ืขื•ืœื™ื ื‘ืœืขื“ื™ื™ื ื™ื•ืชืจ, ื›ืš ื”ื‘ื™ืฆื•ืขื™ื ืžื”ื™ืจื™ื ื™ื•ืชืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”