๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

DB

10์žฅ ํšŒ๋ณต๊ณผ ๋ณ‘ํ–‰ ์ œ์–ด

 

1 ํŠธ๋žœ์žญ์…˜

1-1. ํŠธ๋žœ์žญ์…˜์ด๋ž€?

  • ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ์‚ฐ์˜ ๋ชจ์Œ
  • ์ž‘์—… ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ sql๋ฌธ๋“ค์˜ ๋ชจ์ž„
    • EX) ํŠนํžˆ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” INSERT, DELETE, UPDATE๋ฌธ์˜ ์‹คํ–‰์„ ๊ด€๋ฆฌ
  • ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—…์˜ ๋‹จ์œ„
  • ์žฅ์•  ๋ฐœ์ƒ์‹œ ๋ณต๊ตฌ ์ž‘์—…์ด๋‚˜ ๋ณ‘ํ–‰์ œ์–ด ์ž‘์—…์„ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋‹จ์œ„๋กœ ์‚ฌ์šฉ๋จ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด

์˜ˆ์‹œ

๊ณ„์ขŒ์ด์ฒด ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฝ์šฐ ๋ˆ์ด ์ธ์ถœ๋˜๋Š” UPDATE ๋ฌธ๊ณผ ๋ˆ์ด ์ž…๊ทผ๋˜๋Š” UPDATE ๋ฌธ์ด ์ฒ˜๋ฆฌ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์ง€๋งŒ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

1-2 ํŠน์„ฑ (ACID)

 

์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ๊ฒฉ๋ฆฌ์„ฑ, ์ง€์†์„ฑ

 

์›์ž์„ฑ(atomicity)

  • ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ๋“ค์ด ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ํ•˜๋‚˜๋„ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผํ•˜๋Š” all-or-nothing๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.
  • Q. ๋งŒ์•ฝ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ๋„์ค‘ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด?
    • A. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ ค์•ผ ํ•จ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค์‹œ ๋กค๋ฐฑํ•ด์•ผํ•จ.)
  • ์›์ž์„ฑ์˜ ๋ณด์žฅ์„ ์œ„ํ•ด ์žฅ์•  ๋ฐœ์ƒ์‹œ ํšŒ๋ณต ๊ธฐ๋Šฅ์ด ํ•„์š”

์ผ๊ด€์„ฑ(consistency)

ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ผ๊ด€๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธ

  • '์ผ๊ด€์„ฑ ์—ฌ๋ถ€' ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํŒ๋‹จํ•˜๊ณ  ์ •๋ฆฌํ•ด์•ผ ํ•จ
  • '์ผ๊ด€์„ฑ์ด ์œ ์ง€๋˜๋„๋ก ํŠธ๋žœ์žญ์…˜์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ'์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ฐœ์ž์˜ ์ฑ…์ž„

๊ฒฉ๋ฆฌ์„ฑ(isolation)

์ˆ˜ํ–‰ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๋“ค์ด ์ค‘๊ฐ„ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธ

ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ๊ณผ์ •์—์„œ ๊ฐฑ์‹ ๋œ ๋ฐ์ดํ„ฐ๋Š” ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ ์‹œ๊นŒ์ง€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ฐธ์กฐํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธ

  • ๊ฒฉ๋ฆฌ์„ฑ์˜ ๋ณด์žฅ์„ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋”๋ผ๋„ ๋งˆ์น˜ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ •ํ™•ํ•˜๊ณ  ์ผ๊ด€๋œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”

์ง€์†์„ฑ(durability)

  • ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ํ•œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์ ์ด์–ด์•ผ ํ•จ์„ ์˜๋ฏธ
  • ์ง€์†์„ฑ์˜ ๋ณด์žฅ์„ ์œ„ํ•ด์„œ๋Š” ์žฅ์•  ๋ฐœ์ƒ ์‹œ ํšŒ๋ณต ๊ธฐ๋Šฅ์ด ํ•„์š”

1-3 ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ์„ ์ง€์›ํ•˜๋Š” DBMS์˜ ๊ธฐ๋Šฅ

์›์ž์„ฑ(all or nothing) ← ํšŒ๋ณต ๊ธฐ๋Šฅ

์ผ๊ด€์„ฑ(์ˆ˜ํ–‰ ์ „ ํ›„๊ฐ€) ← ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋Šฅ

๊ฒฉ๋ฆฌ์„ฑ(์ž‘์—… ์ค‘ ์ ‘๊ทผ X)  ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋Šฅ

์ง€์†์„ฑ(์˜๊ตฌ์ ) ← ํšŒ๋ณต ๊ธฐ๋Šฅ

1-4 ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ

commit rollback

commit ์—ฐ์‚ฐ

  • ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜ํ–‰์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์„ ์–ธํ•˜๋Š” ์—ฐ์‚ฐ
  • commit ์—ฐ์‚ฐ์ด ์‹คํ–‰๋˜๋ฉด ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ ๋˜๊ณ  ์ผ๊ด€๋œ ์ƒํƒœ๋ฅผ ์ง€์†์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ฒŒ ๋จ

rollback ์—ฐ์‚ฐ

  • ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜ํ–‰์ด ์‹คํŒจํ–ˆ์Œ์„ ์„ ์–ธํ•˜๋Š” ์—ฐ์‚ฐ
  • rollback ์—ฐ์‚ฐ์ด ์‹คํ–‰๋˜๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์ง€๊ธˆ๊นŒ์ง€ ์‹คํ–‰ํ•œ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ทจ์†Œ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ „์˜ ์ผ๊ด€๋œ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐ

1-5 ํŠธ๋žœ์žญ์…˜์˜ ์ƒํƒœ

ํ™œ๋™(active) ์ƒํƒœ

  • ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ•˜์—ฌ ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ์ƒํƒœ

๋ถ€๋ถ„ ์™„๋ฃŒ(partially committed) ์ƒํƒœ

  • ํŠธ๋žœ์žญ์…˜์˜ ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์ด ์‹คํ–‰์„ ๋๋‚ธ ์งํ›„์˜ ์ƒํƒœ

์™„๋ฃŒ(committed) ์ƒํƒœ

  • ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์–ด commit ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ ์ƒํƒœ
  • ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰ํ•œ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ƒˆ๋กœ์šด ์ผ๊ด€๋œ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด์„œ ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ๋œ๋‹ค.

์‹คํŒจ ์ƒํƒœ

  • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜ํ–‰์ด ์ค‘๋‹จ๋œ ์ƒํƒœ

์ฒ ํšŒ ์ƒํƒœ

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

2 ์žฅ์• ์™€ ํšŒ๋ณต

2-1. ์žฅ์• ๋ž€?

์žฅ์• : ์‹œ์Šคํ…œ์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ;

2-2. ์žฅ์• ์˜ ์œ ํ˜•

ํŠธ๋žœ์žญ์…˜ ์žฅ์•  ์˜๋ฏธ: ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•จ ์›์ธ: ํŠธ๋žœ์žญ์…˜์˜ ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜, ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ, ์‹œ์Šคํ…œ ์ž์›์˜ ๊ณผ๋‹ค ์‚ฌ์šฉ ์š”๊ตฌ, ์ฒ˜๋ฆฌ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ์˜ ๋ถ€์žฌ ๋“ฑ

์‹œ์Šคํ…œ ์žฅ์•  ์˜๋ฏธ: ํ•˜๋“œ์›จ์–ด์˜ ๊ฒฐํ•จ์œผ๋กœ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰์„ ๊ณ„์†ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ ์›์ธ: ํ•˜๋“œ์›จ์–ด ์ด์ƒ์œผ๋กœ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ์ •๋ณด๊ฐ€ ์†์‹ค๋˜๊ฑฐ๋‚˜ ๊ต์ฐฉ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋“ฑ

๋ฏธ๋””์–ด ์žฅ์•  ์˜๋ฏธ: ๋””์Šคํฌ ์žฅ์น˜์˜ ๊ฒฐํ•จ์œผ๋กœ ๋””์Šคํฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๋ถ€ ํ˜น์€ ์ „์ฒด๊ฐ€ ์†์ƒ๋œ ์ƒํƒœ ์›์ธ: ๋””์Šคํฌ ํ—ค๋“œ์˜ ์†์ƒ์ด๋‚˜ ๊ณ ์žฅ ๋“ฑ

2-3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ ์žฅ์น˜์˜ ์ข…๋ฅ˜

ํœ˜๋ฐœ์„ฑvolatile ์ €์žฅ ์žฅ์น˜(์†Œ๋ฉธ์„ฑ)

  • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋จ
  • ex) ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋“ฑ

๋น„ํœ˜๋ฐœ์„ฑnonvolatile ์ €์žฅ ์žฅ์น˜(๋น„์†Œ๋ฉธ์„ฑ)

  • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ์—†์Œ
  • ๋””์Šคํฌ ํ—ค๋” ์†์ƒ ๊ฐ™์€ ์ €์žฅ ์žฅ์น˜ ์ž์ฒด์— ์ด์ƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค ๋  ์ˆ˜ ์žˆ์Œ
  • ex) ๋””์Šคํฌ, ์ž๊ธฐ ํ…Œ์ดํ”„ CD/DVD ๋“ฑ

์•ˆ์ •stable ์ €์žฅ ์žฅ์น˜

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

2-4. ๋ฐ์ดํ„ฐ ์ด๋™ ์—ฐ์‚ฐ

  • ๋””์Šคํฌ์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ด๋™ ์—ฐ์‚ฐ - input / output
    • ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์—์„œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋””์Šคํฌ๋กœ ๋ณด๋‚ด๋Š” ์ž‘์—…์ด ํ•„์š”ํ•จ
    • ๋ธ”๋ก(block) ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰๋จ
      • disk block: ๋””์Šคํฌ์— ์žˆ๋Š” ๋ธ”๋ก;
      • buffer block: ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋ธ”๋ก;
  • ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ ํ”„๋กœ๊ทธ๋žจ ๋ณ€์ˆ˜ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ด๋™ ์—ฐ์‚ฐ - read / write
    • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜ํ–‰์„ ์ง€์‹œํ•˜๋ฉด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ธ”๋ก์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณ€์ˆ˜๋กœ ๊ฐ€์ ธ์˜ค๊ณ , ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•œ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ธ”๋ก์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•จ

์˜ˆ์‹œ

2-5. ํšŒ๋ณต์ด๋ž€?

  • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์˜ ๋ชจ์ˆœ์ด ์—†๊ณ  ์ผ๊ด€๋œ ์ƒํƒœ๋กœ ๋ณต๊ตฌ์‹œํ‚ค๋Š” ๊ฒƒ
  • ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ผ๊ด€๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ
  • ํšŒ๋ณต ๊ด€๋ฆฌ์ž(recovery manager)๊ฐ€ ๋‹ด๋‹น
    • ์žฅ์•  ๋ฐœ์ƒ์„ ํƒ์ง€ํ•˜๊ณ , ์žฅ์• ๊ฐ€ ํƒ์ง€๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณต

2-6. ํšŒ๋ณต์„ ์œ„ํ•œ ์—ฐ์‚ฐ๊ณผ ํŒŒ์ผ

๋ฐ์ดํ„ฐ ํšŒ๋ณต์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ค‘๋ณต

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ„๋„์˜ ์žฅ์†Œ์— ๋ณต์‚ฌํ•ด๋‘๊ณ , ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๋ณต์‚ฌ๋ณธ์„ ์ด์šฉํ•˜์—ฌ ์›๋ž˜์˜ ์ƒํƒœ๋กœ ๋ณต์›ํ•˜๋Š” ๊ฒƒ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํšŒ๋ณต์„ ์œ„ํ•ด ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

  • ๋คํ”„: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ๋‹ค๋ฅธ ์ €์žฅ ์žฅ์น˜์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•;
  • ๋กœ๊ทธ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์ด ์‹คํ–‰ ๋ ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ด์ „ ๊ฐ’๊ณผ ์ดํ›„์˜ ๊ฐ’์„ ๋ณ„๋„์˜ ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•;
    • ๋กœ๊ทธ ํŒŒ์ผ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์ด์ „๊ณผ ์ดํ›„์˜ ๊ฐ’์„ ๊ธฐ๋กํ•œ ํŒŒ์ผ
    • ๋กœ๊ทธ ๋ ˆ์ฝ”๋“œ: ๋กœ๊ทธ ํŒŒ์ผ์€ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„๋กœ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰๊ณผ ํ•จ๊ป˜ ๊ธฐ๋ก
    • ๋กœ๊ทธ ๋ ˆ์ฝ”๋“œ์˜ 4๊ฐ€์ง€ ์ข…๋ฅ˜

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‘ ๊ฐ€์ง€ ํšŒ๋ณต ๋ฐฉ๋ฒ•

  • redo: ๋กœ๊ทธ์— ๊ธฐ๋ก๋œ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ ํ›„์˜ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์„ ์žฌ์‹คํ–‰ํ•œ๋‹ค.
  • undo: ๋กœ๊ทธ์— ๊ธฐ๋ก๋œ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ ์ด์ „์˜ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์„ ์ทจ์†Œํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต๊ตฌํ•œ๋‹ค.

๋กœ๊ทธ ๊ธฐ๋ก์˜ ์˜ˆ: ๊ณ„์ขŒ ์ž”์•ก์ด 10,000์›์ธ X๊ฐ€ ๊ณ„์ขŒ ์ž”์•ก์ด 0์›์ธ Y์—๊ฒŒ 5,000์› ์ด์ฒด

2-7. ํšŒ๋ณต ๊ธฐ๋ฒ•

์ฆ‰์‹œ ๊ฐฑ์‹  ํšŒ๋ณต ๊ธฐ๋ฒ•

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

์—ฐ์‚ฐ ์ ์šฉ ๋ฐฉ๋ฒ•

  • ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ๋˜๊ธฐ ์ „์ผ ๊ฒฝ์šฐ (๋กœ๊ทธ ํŒŒ์ผ์— <Ti, start> ๋ ˆ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜์ง€๋งŒ <Ti, commit> ๋ ˆ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ): ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์— undo ์—ฐ์‚ฐ ์‹œํ–‰
  • ์™„๋ฃŒ๋œ ์ดํ›„๋ฉด (๋กœ๊ทธ ํŒŒ์ผ์— <Ti, start>๊ณผ <Ti, commit> ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ): ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์— redo ์—ฐ์‚ฐ ์‹œํ–‰

์ง€์—ฐ ๊ฐฑ์‹  ํšŒ๋ณต ๊ธฐ๋ฒ•

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

์—ฐ์‚ฐ ์ ์šฉ ๋ฐฉ๋ฒ•

  • ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ค‘์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋กœ๊ทธ์— ๊ธฐ๋ก๋œ ๋‚ด์šฉ์„ ๋ฒ„๋ฆฌ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์›๋ž˜ ์ƒํƒœ๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ฒŒ ๋จ
    • ์ง€์—ญ ๊ฐฑ์‹  ํšŒ๋ณต ๊ธฐ๋ฒ•์—์„œ๋Š” undo ์—ฐ์‚ฐ์€ ํ•„์š”์—†์Œ
    • ๋กœ๊ทธ ๋ ˆ์ฝ”๋“œ์— ๋ณ€๊ฒฝ ์ด์ „ ๊ฐ’์„ ๊ธฐ๋กํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ <T1, X, new_value> ๋กœ ๋ ˆ์ฝ”๋“œ ํ˜•์‹์ด ๋ณ€ํ•จ
  • ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ๋˜๊ธฐ ์ „์ผ ๊ฒฝ์šฐ (๋กœ๊ทธ ํŒŒ์ผ์— <Ti, start> ๋ ˆ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜์ง€๋งŒ <Ti, commit> ๋ ˆ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ): ๋กœ๊ทธ ๋ฌด์‹œํ•˜๊ณ  ๋ฒ„๋ฆผ
  • ์™„๋ฃŒ๋œ ์ดํ›„๋ฉด (๋กœ๊ทธ ํŒŒ์ผ์— <Ti, start>๊ณผ <Ti, commit> ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ): ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์— redo ์—ฐ์‚ฐ ์‹œํ–‰

๊ฒ€์‚ฌ ์‹œ์  ํšŒ๋ณต ๊ธฐ๋ฒ•

  • ๋กœ๊ทธ ๊ธฐ๋ก์„ ์ด์šฉํ•˜๋˜, ์ผ์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๊ฒ€์‚ฌ ์‹œ์ (checkpoint)์„ ๋งŒ๋“ฆ
  • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒ ์‹œ ๊ฐ€์žฅ ์ตœ๊ทผ ๊ฒ€์‚ฌ ์‹œ์  ์ด์ „์˜ ํŠธ๋žœ์žญ์…˜์—๋Š” ํšŒ๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ , <checkpoint L> ๋กœ๊ทธ ๋ ˆ์ฝ”๋“œ ์ดํ›„์˜ ๊ธฐ๋ก์— ๋Œ€ํ•ด์„œ๋งŒ ํšŒ๋ณต ์ž‘์—…(์ฆ‰์‹œ ๊ฐฑ์‹  ๋˜๋Š” ์ง€์—ฐ ๊ฐฑ์‹  ํšŒ๋ณต ๊ธฐ๋ฒ•)์„ ์ด์šฉํ•ด ์ˆ˜ํ–‰
  • ๋กœ๊ทธ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํšŒ๋ณต ๊ธฐ๋ฒ•์„ ์ ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋น„ํšจ์œจ์„ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
    • ๊ฒ€์‚ฌ ์‹œ์ ์œผ๋กœ ์ž‘์—… ๋ฒ”์œ„๊ฐ€ ์ •ํ•ด์ง€๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ํšŒ๋ณต ์ž‘์—…์ด ์—†์–ด ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋จ

๋ฏธ๋””์–ด ํšŒ๋ณต ๊ธฐ๋ฒ•

  • ๋””์Šคํฌ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์• ์— ๋Œ€๋น„ํ•œ ํšŒ๋ณต ๊ธฐ๋ฒ•
  • ๋คํ”„(๋ณต์‚ฌ๋ณธ) ์ด์šฉ
    • ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์„ ์ผ์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ์•ˆ์ „ํ•œ ์ €์žฅ ์žฅ์น˜์— ๋ณต์‚ฌ
  • ๋””์Šคํฌ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด?
    1. ๋คํ”„๋ฅผ ์ด์šฉํ•˜์—ฌ ์žฅ์•  ๋ฐœ์ƒ ์ด์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋กœ ๋ณต๊ตฌ
    2. ๋กœ๊ทธ์˜ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ redo ์—ฐ์‚ฐ ์‹คํ–‰

3 ๋ณ‘ํ–‰ ์ œ์–ด

3-1. ๋ณ‘ํ–‰ ์ˆ˜ํ–‰๊ณผ ๋ณ‘ํ–‰ ์ œ์–ด๋ž€?

๋ณ‘ํ–‰ ์ˆ˜ํ–‰

  • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋™์‹œ์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜๋“ค์ด ์ฐจ๋ก€๋กœ ๋ฒˆ๊ฐˆ์•„ ์ˆ˜ํ–‰๋˜๋Š” interleaving ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

๋ณ‘ํ–‰ ์ œ์–ด

๋ณ‘ํ–‰ ์ˆ˜ํ–‰ ์‹œ ๊ฐ™์€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์—ฌ ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์ •ํ™•ํ•œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํŠธ๋žœ์žญ์…˜์˜ ์ˆ˜ํ–‰์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

3-2. ๋ณ‘ํ–‰ ์ˆ˜ํ–‰ ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ 

  • ๋ณ‘ํ–‰ ์ˆ˜ํ–‰์„ ํŠน๋ณ„ํ•œ ์ œ์–ด ์—†์ด ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒ๋œ๋‹ค.

๊ฐฑ์‹  ๋ถ„์‹ค

  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰ํ•œ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ฎ์–ด์จ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์ด ๋ฌดํšจํ™”๋˜๋Š” ๊ฒƒ
  • ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋”๋ผ๋„ ๊ฐฑ์‹  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๋งˆ์น˜ ํŠธ๋žœ์žญ์…˜์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ.

๋ชจ์ˆœ์„ฑ(inconsistency)

  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•  ๋•Œ ์ผ๊ด€์„ฑ ์—†๋Š” ์ƒํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•ด์„œ ๋ชจ์ˆœ๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ
  • ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ˆ˜ํ–‰๋˜์–ด๋„ ๋ชจ์ˆœ์„ฑ์ด ๋ฐœ์ƒ๋˜์ง€ ์•Š๊ณ , ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰๊ณผ ๊ฐ™์€ ๊ฐ’์„ ์–ป์–ด์•ผ ํ•จ

์—ฐ์‡„ ๋ณต๊ท€(cascading rollback)

  • ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ rollback์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ์ด ํŠธ๋žœ์žญ์…˜์ด ์žฅ์•  ๋ฐœ์ƒ ์ „์— ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ ๋˜ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—๋„ rollback์—ฐ์‚ฐ์„ ์—ฐ์‡„์ ์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ
  • ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋”๋ผ๋„ ์—ฐ์‡„ ๋ณต๊ท€๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  •  

3-3. ํŠธ๋žœ์žญ์…˜ ์Šค์ผ€์ฅด

  • ํŠธ๋žœ์žญ์…˜๋“ค์˜ ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋Š” ์ˆœ์„œ

์ง๋ ฌserial ์Šค์ผ€์ฅด

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

๋น„์ง๋ ฌnonserial ์Šค์ผ€์ฅด

  • ์˜๋ฏธ
    • ์ธํ„ฐ๋ฆฌ๋น™ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ๋ณ‘ํ–‰ํ•ด์„œ ์ˆ˜ํ–‰์‹œํ‚ค๋Š” ๊ฒƒ
  • ํŠน์ง•
    • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ ์ „์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์‹คํ–‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ๋น„์ง๋ ฌ ์Šค์ผ€์ฅด์ด ๋งŒ๋“ค์–ด์ง€๊ณ , ๊ฐฑ์‹  ๋ถ„์‹ค, ๋ชจ์ˆœ์„ฑ, ์—ฐ์‡„ ๋ณต๊ท€ ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ฒฐ๊ณผ์˜ ์ •ํ™•์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์Œ

๋‹ค์–‘ํ•œ ๋น„์ง๋ ฌ ์Šค์ผ€์ค„ ์ค‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋น„์ง๋ ฌ ์Šค์ผ€์ค„์˜ ์˜ˆ์‹œ

์ง๋ ฌ ๊ฐ€๋Šฅserializable ์Šค์ผ€์ฅด

  • ์˜๋ฏธ
    • ๋น„์ง๋ ฌ ์Šค์ผ€์ค„ ์ค‘์—์„œ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•œ ์ง๋ ฌ ์Šค์ผ€์ค„์ด ์žˆ๋Š” ๊ฒƒ
  • ํŠน์ง•
    • ์ธํ„ฐ๋ฆฌ๋น™ ๋ฐฉ์‹์œผ๋กœ ๋ณ‘ํ–‰ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ๋„ ์ง๋ ฌ ์Šค์ผ€์ฅด์— ๋”ฐ๋ผ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ
    • ์ง๋ ฌ ๊ฐ€๋Šฅ ์Šค์ผ€์ค„์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ์ž‘์—…์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ง๋ ฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž„

3-4 ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋ฒ•

์˜๋ฏธ

  • ๋ณ‘ํ–‰ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ๋„ ์ง๋ ฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•

๋ฐฉ๋ฒ•

  • ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์ด ์ค€์ˆ˜ํ•˜๋ฉด ์ง๋ ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์žฅ๋˜๋Š” ๊ทœ์•ฝ์„ ์ •์˜ํ•˜๊ณ , ํŠธ๋žœ ์žญ์…˜๋“ค์ด ์ด ๊ทœ์•ฝ์„ ๋”ฐ๋ฅด๋„๋ก ํ•จ

๋Œ€ํ‘œ์ ์ธ ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋ฒ•

  • ๋กœํ‚น ๊ธฐ๋ฒ•

3-5 ๋กœํ‚น ๊ธฐ๋ฒ• (๋Œ€ํ‘œ์ ์ธ ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋ฒ•)

๊ธฐ๋ณธ ์›๋ฆฌ

  • ํ•œ ํŠธ๋žœ์žญ์…˜์ด ๋จผ์ € ์ ‘๊ทผํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ๋๋‚ผ ๋•Œ๊นŒ์ง€๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ ์…˜์ด ๊ทธ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ƒํ˜ธ ๋ฐฐ์ œ(mutual exclusion)ํ•จ

๋ฐฉ๋ฒ•

  • ๋ณ‘ํ–‰ ์ˆ˜ํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜๋“ค์ด ๊ฐ™์€ ๋ฐ์ดํ„ฐ์— ๋™์‹œ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก lock๊ณผ unlock ์—ฐ์‚ฐ์„ ์ด์šฉํ•ด ์ œ์–ด
    • lock: ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋…์ ๊ถŒ์„ ์š”์ฒญํ•˜๋Š” ์—ฐ์‚ฐ
    • unlock: ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋…์ ๊ถŒ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ

๊ธฐ๋ณธ ๋กœํ‚น ๊ทœ์•ฝ

  1. ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € lock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•ด ๋…์ ๊ถŒ์„ ํš๋“ํ•จ
    • read ๋˜๋Š” write ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „ lock ์—ฐ์‚ฐ์„ ์‹คํ–‰
  2. ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ์ด๋ฏธ lock ์—ฐ์‚ฐ์ด ์‹คํ–‰๋œ ๋ฐ์ดํ„ฐ์—๋Š” ๋‹ค์‹œ lock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Œ
  3. ๋…์ ๊ถŒ์„ ํš๋“ํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ชจ๋“  ์—ฐ์‚ฐ์˜ ์ˆ˜ํ–‰์ด ๋๋‚˜๋ฉด ํŠธ๋žœ์žญ์…˜์€ unlock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•ด์„œ ๋…์ ๊ถŒ์„ ๋ฐ˜๋‚ฉํ•ด์•ผ ํ•จ

๋กœํ‚น ๋‹จ์œ„

  • lock์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์ƒ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ
  • ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ถ€ํ„ฐ ๋ฆด๋ ˆ์ด์…˜, ํˆฌํ”Œ, ์†์„ฑ๊นŒ์ง€๋„ ๊ฐ€๋Šฅํ•จ
  • ๋กœํ‚น ๋‹จ์œ„๊ฐ€ ์ปค์งˆ ์ˆ˜๋ก ๋ณ‘ํ–‰์„ฑ์€ ๋‚ฎ์•„์ง€์ง€๋งŒ ์ œ์–ด๊ฐ€ ์‰ฝ๊ณ , ๋กœํ‚น ๋‹จ์œ„๊ฐ€ ์ž‘์•„์งˆ์ˆ˜๋ก ์ œ์–ด๊ฐ€ ์–ด๋ ต์ง€๋งŒ ๋ณ‘ํ–‰์„ฑ์€ ๋†’์•„์ง

๊ธฐ๋ณธ ๋กœํ‚น ๊ทœ์•ฝ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•

  • ํŠธ๋žœ์žญ์…˜๋“ค์ด ๊ฐ™์€ ๋ฐ์ดํ„ฐ์— ๋™์‹œ์— read ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•จ
  • lock ์—ฐ์‚ฐ์„ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•จ
    1. shared lock
      • ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ์— ๊ณต์šฉ lock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋ฉด (๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์ด) ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— read ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ write ์—ฐ์‚ฐ์€ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Œ
      • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๋„ ๊ณต์šฉ lock ์—ฐ์‚ฐ์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ (๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‚ฌ์šฉ๊ถŒ์„ ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ํ•จ๊ป˜ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ)
    2. exclusive lock
      • ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ์— ์ „์šฉ lock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋ฉด (๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์ด) ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— read ์—ฐ์‚ฐ๊ณผ write ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์€ ์–ด๋– ํ•œ lock์—ฐ์‚ฐ๋„ ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. (์ „์šฉ lock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ ํŠธ๋žœ์žญ์…˜์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋…์ ๊ถŒ์„ ๊ฐ€์ง)

๋ฌธ์ œ์ 

ํ•˜์ง€๋งŒ ์•ž์„  ๊ธฐ๋ณธ ๋กœํ‚น ๊ทœ์•ฝ๋งŒ์œผ๋กœ๋Š” lock๊ณผ unlock์—ฐ์‚ฐ์˜ ์ˆ˜ํ–‰ ์‹œ์ ์— ๊ด€ํ•œ ๋ชจ์ˆœ์„ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜ T1์ด ๋ฐ์ดํ„ฐ X์— ๋„ˆ๋ฌด ๋นจ๋ฆฌ unlock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜ T2๊ฐ€ ์ผ๊ด€์„ฑ ์—†๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

2๋‹จ๊ณ„ ๋กœํ‚น ๊ทœ์•ฝ์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

2๋‹จ๊ณ„ ๋กœํ‚น ๊ทœ์•ฝ

์˜๋ฏธ

  • ๊ธฐ๋ณธ ๋กœํ‚น ๊ทœ์•ฝ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ํŠธ๋žœ์žญ์…˜์˜ ์ง๋ ฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด lock๊ณผ unlock ์—ฐ์‚ฐ์˜ ์ˆ˜ํ–‰ ์‹œ์ ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ทœ์•ฝ์„ ์ถ”๊ฐ€ํ•œ ๊ฒƒ

๋ฐฉ๋ฒ•

  • ํŠธ๋žœ์žญ์…˜์ด lock๊ณผ unlock ์—ฐ์‚ฐ์„ ํ™•์žฅ ๋‹จ๊ณ„์™€ ์ถ•์†Œ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด ์‹คํ–‰
    1. ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜์Œ ์ˆ˜ํ–‰๋˜๋ฉด ํ™•์žฅ ๋‹จ๊ณ„๋กœ ๋“ค์–ด๊ฐ€ lock ์—ฐ์‚ฐ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ
    2. unlock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋ฉด ์ถ•์†Œ ๋‹จ๊ณ„๋กœ ๋“ค์–ด๊ฐ€ unlock ์—ฐ์‚ฐ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ
    3. ํŠธ๋žœ์žญ์…˜์€ ์ฒซ ๋ฒˆ์งธ unlock ์—ฐ์‚ฐ ์‹คํ–‰ ์ „์— ํ•„์š”ํ•œ ๋ชจ๋“  lock ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•ด์•ผ ํ•จ

ํ™•์žฅ ๋‹จ๊ณ„: ํŠธ๋žœ์žญ์…˜์ด lock์—ฐ์‚ฐ๋งŒ ์‹คํ–‰ํ•˜๊ณ , unlock์—ฐ์‚ฐ์€ ์‹คํ–‰ ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ๊ณ„ ์ถ•์†Œ ๋‹จ๊ณ„: ํŠธ๋žœ์žญ์…˜์ด unlock์—ฐ์‚ฐ๋งŒ ์‹คํ–‰ํ•˜๊ณ  lock์€ ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅ

 

2๋‹จ๊ณ„ ๋กœํ‚น ๊ทœ์•ฝ์„ ์ค€์ˆ˜ํ•˜์—ฌ ์ง๋ ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋ณด์žฅ๋œ ์Šค์ผ€์ค„ ์˜ˆ

 

๋ฌธ์ œ์ 

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