InterSystems IRIS ๊ธ€๋กœ๋ฒŒ์˜ ํŠธ๋žœ์žญ์…˜

InterSystems IRIS ๊ธ€๋กœ๋ฒŒ์˜ ํŠธ๋žœ์žญ์…˜InterSystems IRIS DBMS๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ ํฅ๋ฏธ๋กœ์šด ๊ตฌ์กฐ์ธ ์ „์—ญ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ์ด๋Š” ํŠธ๋žœ์žญ์…˜ ํ˜•ํƒœ์˜ ๋‹ค์–‘ํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ, ๋ฐ์ดํ„ฐ ํŠธ๋ฆฌ ํƒ์ƒ‰์„ ์œ„ํ•œ ๋น ๋ฅธ ๊ธฐ๋Šฅ, ์ž ๊ธˆ ๋ฐ ์ž์ฒด ObjectScript ์–ธ์–ด๊ฐ€ ํฌํ•จ๋œ ๋‹ค์ค‘ ๋ ˆ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

"์ „์—ญ์€ ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ ๋ณด๋ฌผ๊ฒ€์ž…๋‹ˆ๋‹ค"๋ผ๋Š” ๊ธฐ์‚ฌ ์‹œ๋ฆฌ์ฆˆ์—์„œ ์ „์—ญ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

๋‚˜๋ฌด. 1 ๋ถ€
๋‚˜๋ฌด. 2 ๋ถ€
ํฌ์†Œ ๋ฐฐ์—ด. 3๋ถ€

์ €๋Š” ๊ธ€๋กœ๋ฒŒ์—์„œ ํŠธ๋žœ์žญ์…˜์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€, ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์žˆ๋Š”์ง€์— ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋‚ฎ์€ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ก ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํŠธ๋žœ์žญ์…˜์„ ์ œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ACID:

A - ์›์ž์„ฑ(์›์ž์„ฑ). ๊ฑฐ๋ž˜์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ธฐ๋ก๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ๊ธฐ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

C - ์ผ๊ด€์„ฑ. ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋œ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ์ƒํƒœ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฉด์—์„œ ์ด ์š”๊ตฌ ์‚ฌํ•ญ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์™€ ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ ์™ธ๋ž˜ ํ‚ค์—๋„ ๊ด€๋ จ๋ฉ๋‹ˆ๋‹ค.

๋‚˜ - ๊ฒฉ๋ฆฌํ•˜๋‹ค. ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜์€ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

D - ๋‚ด๊ตฌ์„ฑ. ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํ›„ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋ฌธ์ œ(์˜ˆ: ์ •์ „)๊ฐ€ ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ์— ์˜ํ–ฅ์„ ์ฃผ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ „์—ญ์€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ์ œํ•œ๋œ ํ•˜๋“œ์›จ์–ด์—์„œ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ์—์„œ ํŠธ๋žœ์žญ์…˜ ๊ตฌํ˜„์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ IRIS ๋„์ปค ์ด๋ฏธ์ง€.

IRIS์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ‹ฐ์Šคํƒ€ํŠธ, 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

์ด ๋ช…๋ น์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฆ‰์‹œ ์ค‘์ง€ํ•˜๊ธฐ ์œ„ํ•ด 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. ๊ฒฉ๋ฆฌ

์ด๊ณณ์ด ์•ผ์ƒ์ด ์‹œ์ž‘๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋™์‹œ์— ์ž‘์—…ํ•˜์—ฌ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ƒํ™ฉ์€ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•œ ์ฝ”๋“œ ์ €์žฅ์†Œ๋กœ ๋™์‹œ์— ์ž‘์—…ํ•˜๊ณ  ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋™์‹œ์— ์ปค๋ฐ‹ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง„์ง€ํ•œ ํšŒ์‚ฌ์—๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ(๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ, ์ถฉ๋Œ ํ•ด๊ฒฐ ๋“ฑ)๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํŠน๋ณ„ํ•œ ์‚ฌ๋žŒ๋„ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด ๋ชจ๋“  ์ž‘์—…์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฉฐ ์ž‘์—…์˜ ๋ณต์žก์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ๋ฐ ์ฝ”๋“œ.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๊ณผ ์ถฉ๋Œํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ํ•˜๋‚˜๋งŒ ์‹คํ–‰ ์ทจ์†Œํ•˜๊ฑฐ๋‚˜ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ค‘(์ปค๋ฐ‹ ์ „) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋‹ฌ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€๋˜์ง€ ์•Š์€ ์ƒํƒœ์— ์•ก์„ธ์Šคํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•: ์Šค๋ƒ…์ƒท ์ƒ์„ฑ, ํ–‰ ๋‹ค์ค‘ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋“ฑ

ํŠธ๋žœ์žญ์…˜์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ๋•Œ ์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ณ ๋ฆฝ์˜ ์†์„ฑ์ด๋‹ค.

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์˜ ์Šค๋งˆํŠธ ์ž ๊ธˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜, ์ฆ๋ถ„, ๋‹ค์ค‘ ์ž ๊ธˆ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ทธ๋‹ค.

๋‚ฎ์€ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ์ ˆ์ถฉ์•ˆ์ž…๋‹ˆ๋‹ค.

์ž ๊ธˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐฐํƒ€์  ์ž ๊ธˆ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฝ๊ธฐ ํ”„๋กœ์„ธ์Šค ์ค‘์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๋ณ€๊ฒฝ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์•ผ ํ•  ๋•Œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์œ„ ๊ณต์œ  ์ž ๊ธˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Ÿฌ์‹œ์•„์–ด ๋ฐ ์˜์–ด๋กœ ๋œ XNUMX๋‹จ๊ณ„ ์ฐจ๋‹จ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด:

โ†’ XNUMX๋‹จ๊ณ„ ์ฐจ๋‹จ
โ†’ XNUMX๋‹จ๊ณ„ ์ž ๊ธˆ

์–ด๋ ค์šด ์ ์€ ํŠธ๋žœ์žญ์…˜ ์ค‘์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ์ผ๊ด€๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ํ‘œ์‹œ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•?

์ž ๊ธˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€๋˜๋Š” ๊ฐ€์‹œ์„ฑ ์ฐฝ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ฉ์˜๋œ ์ƒํƒœ์˜ ๊ณต๊ฐœ ์ฐฝ์— ๋Œ€ํ•œ ๋ชจ๋“  ์•ก์„ธ์Šค๋Š” ์ž ๊ธˆ ์žฅ์น˜๋กœ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ณต์œ  ์ž ๊ธˆ์€ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ์˜ ์ฐฝ์„ ํ˜•์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฐฐํƒ€์  ์ž ๊ธˆ์€ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹จ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ์ด ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํƒ€์  ์ž ๊ธˆ์€ ๋‹ค์Œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  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, amount)์„ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ)

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 ์ˆ˜์ค€๊นŒ์ง€ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์—ญ ํŠธ๋žœ์žญ์…˜์˜ ์ •ํ™•์„ฑ๊ณผ ์†๋„๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ธฐ์ˆ ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค. ์ฝ์„ ๋•Œ ๋” ๋„๋ฆฌ ๊ณต์œ ๋œ ์ž ๊ธˆ์„ ์‚ฌ์šฉํ• ์ˆ˜๋ก ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๋†’์•„์ง€๊ณ , ๋” ์ข์€ ๋ฒ”์œ„์˜ ๋ฐฐํƒ€์  ์ž ๊ธˆ์„ ์‚ฌ์šฉํ• ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ๋” ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€