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

2020. 6. 22. 20:29ใ†์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ‘ Warming Up - ํŠธ๋žœ์žญ์…˜์ด๋ž€?

 

๐Ÿ‘Š ํŠธ๋žœ์žญ์…˜ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์—ฐ์‚ฐ๋“ค์˜ ์ง‘ํ•ฉ

 

ํšŒ๋ณต๊ณผ ๋ณ‘ํ–‰์ œ์–ด๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋žœ์žญ์…˜์„ ๋จผ์ € ์•Œ์•„์•ผ ํ•œ๋‹ค.

์‰ฝ๊ฒŒ ์–˜๊ธฐํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ™œ์šฉ์„ ์ ˆ์ฐจ์  ๊ด€์ ์—์„œ ๋ณธ ๊ฒƒ์ด๋‹ค.

ํŠธ๋žœ์žญ์…˜์€ ์ตœ์ข…์ ์œผ๋กœ COMMIT ๋˜๊ฑฐ๋‚˜ ROLLBACK ๋˜์–ด์•ผ ํ•œ๋‹ค.

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

์ •๋ง ์˜ค๋ฅ˜๊ฐ€ ์•„์˜ˆ ์—†์—ˆ๋‹ค๋ฉด COMMIT์œผ๋กœ ํŠธ๋žœ์žญ์…˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ "๋ถ€๋ถ„์™„๋ฃŒ" ์ƒํƒœ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด "์‹คํŒจ" ๋‹จ๊ณ„๋กœ์„œ ROLLBACK์„ ์‹คํ–‰ํ•˜์—ฌ ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๊ธฐ ์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค.


๐Ÿ‘Š ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ์งˆ(4)

 

๐Ÿ™Œ ์›์ž์„ฑ(Atomicity)

ํŠธ๋žœ์žญ์…˜์€ ์˜ค๋ฅ˜์—†์ด ์™„๋ฒฝํ•˜๊ฒŒ ์™„๋ฃŒ๋˜๊ฑฐ๋‚˜, ์•„๋‹ˆ๋ฉด ์กฐ๊ธˆ์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์•„์˜ˆ ์‹คํ–‰๋˜๊ธฐ ์ „ ๋‹จ๊ณ„๋กœ ๋ณต์›๋˜์–ด์•ผ ํ•œ๋‹ค. All or Nothing

์˜ˆ๋ฅผ ๋“ค์–ด, A -> B -> C ์ˆœ์„œ๋กœ ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜์ด ์žˆ๋Š”๋ฐ B์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋‹ค๋ฉด, ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์€ ๋ชจ๋‘ ROLLBACK์œผ๋กœ ์ „์ฒด์‹คํ–‰์ทจ์†Œ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ™Œ ์ผ๊ด€์„ฑ(Consistency)

๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์—ฐ๊ด€๋˜์–ด ์žˆ๋‹ค๋ฉด, ์‹คํ–‰ ๊ฒฐ๊ณผ๋„ ๋ชจ๋‘ ์ผ๊ด€๋˜์–ด์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, A๊ฐ€ B์—๊ฒŒ ์†ก๊ธˆ์„ ํ•œ๋‹ค๋ฉด ์˜ค๊ณ ๊ฐ€๋Š” ๋ˆ์˜ ํ•ฉ์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

 

๐Ÿ™Œ ๊ฒฉ๋ฆฌ์„ฑ(Isolation, ๋…๋ฆฝ์„ฑ)

ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฒฝํžˆ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€, ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ผ์–ด๋“ค์ง€ ๋ชปํ•œ๋‹ค.

 

๐Ÿ™Œ ์˜์†์„ฑ(Durability, ์ง€์†์„ฑ)

ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋Š” ๋ฌด์Šจ ์ผ์ด ์žˆ๋”๋ผ๋„ ์†์ƒ๋˜์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

์€ํ–‰ ๊ฐ™์ด ์ค‘์š”ํ•œ ๊ณณ์€ ์˜์†์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ๋‹ค์ค‘ ๋ฐฑ์—…์„ ๊ฑฐ์นœ๋‹ค.


๐Ÿ‘ ํšŒ๋ณต์ด๋ž€? - ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋„์ค‘์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ DB๊ฐ€ ์†์ƒ๋˜๋ฉด, ์†์ƒ๋˜๊ธฐ ์ด์ „์˜ ์ •์ƒ ์ƒํƒœ๋กœ๋ณต๊ตฌ์‹œํ‚ค๋Š” ๊ฒƒ

 

๐Ÿ‘Š ์—๋Ÿฌ์˜ ์ข…๋ฅ˜

 

๐Ÿ™Œ ์‹คํ–‰์žฅ์• 

์‘์šฉํ”„๋กœ๊ทธ๋žจ ๋‚ด ์ฝ”๋“œ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ROLLBACK ๋ช…๋ น์„ ๋‚ด๋ ค ๊ณ„ํš์ ์œผ๋กœ ์ข…๋ฃŒ์‹œํ‚จ ์ƒํƒœ

 

๐Ÿ™Œ ํŠธ๋žœ์žญ์…˜์žฅ์• 

์—ฐ์‚ฐ ์ค‘ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋กœ, ๊ณ„ํš๋˜์ง€ ์•Š์€ ๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ ์ƒํƒœ

 

  • ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ
  • ๋ฐ์ดํ„ฐ์˜ ๋ถ€์žฌ
  • ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
  • ์ž์›์˜ ํ•œ๊ณ„ ์ดˆ๊ณผ์š”์ฒญ
  • 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ

 

๐Ÿ™Œ ์‹œ์Šคํ…œ์žฅ์• 

DB์—๋Š” ์†์ƒ์„ ์ฃผ์ง€ ์•Š์ง€๋งŒ, CPU ๊ณ ์žฅ, ๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์˜ค๋ฅ˜๋กœ ํŠธ๋žœ์žญ์…˜์˜ ์‹คํ–‰์„ ๋ฐฉํ•ดํ•˜๋Š” ์ƒํƒœ

 

๐Ÿ™Œ ๋ฏธ๋””์–ด์žฅ์• 

ํ•˜๋“œ๋””์Šคํฌ์˜ ์†์ƒ์œผ๋กœ DB์— ์†์ƒ์„ ์ฃผ๋Š” ์ƒํƒœ

 

 

์ด๋Ÿฌํ•œ ์—๋Ÿฌ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ "ํšŒ๋ณต"์ด๋ผ๊ณ  ํ•œ๋‹ค.


๐Ÿ‘ ํšŒ๋ณต์—๋Š” ์ค‘๋ณต์ €์žฅ๊ธฐ๋ฒ•์œผ๋กœ ๋คํ”„ & ๋กœ๊ทธ๊ฐ€ ์žˆ๋‹ค

 

๐Ÿ‘Š ๋คํ”„

 

๋คํ”„ํŠธ๋Ÿญ๋งˆ๋ƒฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ํผ๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์ €์žฅ์žฅ์น˜์— ๋ณต์‚ฌํ•ด๋†“๊ณ , ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ณต์‚ฌ๋ณธ์„ ์›๋ณธ์œผ๋กœ ๋ฎ์–ด์”Œ์šฐ๋Š” ๊ธฐ๋ฒ•์œผ๋กœ, ๊ทธ๋ฆผ์ž ํŽ˜์ด์ง•์„ ์ด์šฉํ•œ๋‹ค.

 

๐Ÿ™Œ ๊ทธ๋ฆผ์ž ํŽ˜์ด์ง•(Shadow Paging)

ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ DB๋ฅผ ์ผ์ • ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€(DB์ €์žฅ๋‹จ์œ„)์™€ ๊ทธ ๋ณต์‚ฌ๋ณธ์ธ "๊ทธ๋ฆผ์ž ํŽ˜์ด์ง€"๋กœ ๋ณด๊ด€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

DB์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ธธ ๋•Œ๋Š” ์›๋ณธ ํŽ˜์ด์ง€๋ฅผ ์“ฐ๊ณ , ํšŒ๋ณต์ด ํ•„์š”ํ•  ๋•Œ๋Š” ๊ทธ๋ฆผ์ž ํŽ˜์ด์ง€๋ฅผ ์“ด๋‹ค.


๐Ÿ‘Š ๋กœ๊ทธ

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ๊ฐ’(์ ‘์†ํ•˜๊ณ  ๊ฐ€ํ•œ ๋ชจ๋“  ํ–‰๋™)์„ ๋กœ๊ทธํŒŒ์ผ์— ๊ธฐ๋กํ•ด๋†“๊ณ , ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด ๋กœ๊ทธํŒŒ์ผ์„ ๋ถ„์„ํ•˜์—ฌ ์ด์ „ ๊ฐ’์„ ์ฐพ์•„๋ƒ„

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠธ๋žœ์žญ์…˜์„ ๊ธฐ๋กํ•œ ๋กœ๊ทธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

<Ti, Start> : ํŠธ๋žœ์žญ์…˜ Ti์˜ ์‹คํ–‰์ด ์‹œ์ž‘๋จ
<Ti, Xj, V1, V2> : Ti ์ค‘ Xj ์—ฐ์‚ฐ์ด ์‹คํ–‰๋จ์œผ๋กœ์จ V1๊ฐ€ V2๋กœ ๋ณ€ํ•จ
<Ti, Commit> : ํŠธ๋žœ์žญ์…˜ Ti๊ฐ€ ์ •์ƒ์™„๋ฃŒ๋˜์–ด ์ปค๋ฐ‹ํ•จ

๋งŒ์•ฝ ์—๋Ÿฌ ๋˜๋Š” ์›์น˜ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค๋ฉด, ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๊ทธํŒŒ์ผ์„ ๋ถ„์„ํ•˜์—ฌ ์›๋ž˜ DB์ƒํƒœ๋กœ "ํšŒ๋ณต"ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ™Œ Redo์™€ Undo

  • Redo(์žฌ์ˆ˜ํ–‰) : ์ด๋ฏธ COMMIT์„ ํ•œ ํ›„์— DB์˜ ์†์ƒ์ด ์ผ์–ด๋‚œ ๊ฒฝ์šฐ, V1์ด Xj๋ฅผ ๊ฑฐ์ณ V2๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์ •์ƒ์ ์ธ ๊ฒƒ์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์ดํ›„์— ์ผ์–ด๋‚œ DB ์†์ƒ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•˜๋Š”์ง€ ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•ด๋ณด๋Š” ๊ฒƒ
  • Undo(์ทจ์†Œ) : COMMIT๊นŒ์ง€ ๋ชป๊ฐ€๊ณ  ๋„์ค‘์— DB์˜ ์†์ƒ์ด ์ผ์–ด๋‚œ ๊ฒฝ์šฐ, ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๊ธฐ ์ „์˜ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ

 

๐Ÿ™Œ ์ฆ‰์‹œ๊ฐฑ์‹  : ํŠธ๋žœ์žญ์…˜ ์•ˆ์— ์žˆ๋Š” ๊ฐ ์—ฐ์‚ฐ์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋กœ๊ทธํŒŒ์ผ์— ๊ธฐ๋ก๊ณผ ํ•จ๊ป˜ DB์— ์ ์šฉ

ํŠธ๋žœ์žญ์…˜์ด COMMIT ๋˜๊ธฐ ์ „์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์ด๋ฏธ ์ค‘๊ฐ„์ค‘๊ฐ„ DB๊ฐ€ ๊ฐฑ์‹ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์„ Undoํ•˜๊ณ 

ํŠธ๋žœ์žญ์…˜์ด COMMIT ๋œ ํ›„์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์„ Redoํ•œ๋‹ค.

 

๐Ÿ™Œ ์ง€์—ฐ๊ฐฑ์‹  : ํŠธ๋žœ์žญ์…˜ ์•ˆ์— ์žˆ๋Š” ๊ฐ ์—ฐ์‚ฐ์ด ๋๋‚˜๋ฉด ๋กœ๊ทธํŒŒ์ผ์— ๊ธฐ๋ก๋งŒ ํ•˜๊ณ , ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜ ์ „์ฒด๊ฐ€ COMMIT๋˜๋ฉด DB์— ์ ์šฉ

ํŠธ๋žœ์žญ์…˜์ด COMMIT ๋˜๊ธฐ ์ „์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์•„์ง DB ๊ฐฑ์‹ ์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋กœ๊ทธ๊ธฐ๋ก์„ ์‚ญ์ œํ•˜๊ณ 

ํŠธ๋žœ์žญ์…˜์ด COMMIT ๋œ ํ›„์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์„ Redoํ•œ๋‹ค.

์ง€์—ฐ๊ฐฑ์‹ ์€ ํŠธ๋žœ์žญ์…˜์ด COMMIT๋˜์–ด์•ผ ํŠธ๋žœ์žญ์…˜ ๋‚ด ๋ชจ๋“  ์—ฐ์‚ฐ์˜ ๋กœ๊ทธ๊ธฐ๋ก์„ ๋ฐ˜์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ค‘๊ฐ„์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Undoํ•  ํ•„์š”์—†์ด ๋กœ๊ทธ๊ธฐ๋ก๋งŒ ์‚ญ์ œํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ์ง€์—ฐ๊ฐฑ์‹ ๊ธฐ๋ฒ•์„ "No-Undo"๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

 

๐Ÿ™Œ ๊ฒ€์‚ฌ์‹œ์ ํšŒ๋ณต : ์ฆ‰์‹œ๊ฐฑ์‹ ์ด๋“  ์ง€์—ฐ๊ฐฑ์‹ ์ด๋“ , ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์—๋Ÿฌ๋ฐœ์ƒ ์ด์ „์— COMMIT์ด ์ด๋ฏธ ๋๋‚œ ํŠธ๋žœ์žญ์…˜๋“ค์€ ๋ชจ๋‘ Redo์˜ ๋Œ€์ƒ์ด ๋œ๋‹ค.

ํ•˜์ง€๋งŒ Redo์˜ ๋Œ€์ƒ์ด ์ˆ˜๋ฐฑ๊ฐœ๋ผ๋ฉด ๊ต‰์žฅํžˆ ๋น„ํšจ์œจ์ ์ผ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ผ์ • ์ฃผ๊ธฐ๋งˆ๋‹ค ๊ฒ€์‚ฌ์‹œ์ (Check Point)์„ ๋งŒ๋“ค๊ณ , ์ด์ƒ์ด ์—†์—ˆ๋˜ ๊ฒ€์‚ฌ์‹œ์ ์€ Redo ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•˜๋Š” ๊ฒƒ์ด "๊ฒ€์‚ฌ์‹œ์ ํšŒ๋ณต" ๊ธฐ๋ฒ•์ด๋‹ค.


๐Ÿ‘ ๋ณ‘ํ–‰์ œ์–ด๋ž€? - ์—ฌ๋Ÿฌ ๋ช…์ด ๊ฐ™์€ DB๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐœ์ƒํ•˜๊ฒŒ ๋  ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ

 

๐Ÿ‘Š ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธธ๋ž˜?

 

๐Ÿ™Œ ๊ฐฑ์‹ ๋ถ„์‹ค(Lost Update)

๋‘ ๊ฐœ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๊ฐ™์€ ์ž๋ฃŒ๋ฅผ ๋™์‹œ์— ๊ณต์œ ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ๊ฐฑ์‹ ๊ฒฐ๊ณผ์˜ ์ผ๋ถ€๊ฐ€ ๋ถ„์‹ค๋˜๋Š” ํ˜„์ƒ

์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ์‚ฌ๋žŒ์€ A์— 100์„ ๋”ํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ A์— 50์„ ๋”ํ•œ๋‹ค๋ฉด, ๋‚˜์ค‘์— ์ž…๋ ฅ๋œ ๊ฐ’๋งŒ ์ ์šฉ๋˜๋Š” ํ˜„์ƒ์ด๋‹ค.

 

๊ฐฑ์‹ ๋ถ„์‹ค์€ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์™„์ „ํžˆ ๋๋‚˜๊ณ  ๊ทธ ๋‹ค์Œ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜๋Š” "์ง๋ ฌ ์Šค์ผ€์ฅด"๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ™Œ ๋น„์™„๋ฃŒ ์˜์กด์„ฑ(Uncommitted Dependency)

ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰์ด ์‹คํŒจ(๋˜๋Š” ROLLBACK)ํ–ˆ๋Š”๋ฐ ๊ทธ ํŠธ๋žœ์žญ์…˜์ด ํšŒ๋ณต๋˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์‹คํŒจ(๋˜๋Š” ์ทจ์†Œ)๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ˜„์ƒ

 

๐Ÿ™Œ ๋ชจ์ˆœ์„ฑ(Inconsistency)

์„œ๋กœ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ, ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „์˜ ๊ฐ’์ด ํ•„์š”ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ ๋•Œ๋ฌธ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํ˜„์ƒ

 

๐Ÿ™Œ ์—ฐ์‡„๋ณต๊ท€(Cascading Rollback)

๋ณ‘ํ–‰ ์ˆ˜ํ–‰๋˜๋˜ ํŠธ๋žœ์žญ์…˜๋“ค ์ค‘ ํ•˜๋‚˜์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ROLLBACK์„ ๊ฑธ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๋„ ๊ฐ™์ด ROLLBACK๋˜๋Š” ํ˜„์ƒ

 

์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— DB์— ์ ‘๊ทผํ•˜๋ฉด ๋งŽ์€ ํŠธ๋žœ์žญ์…˜์ด ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜๋“ค์„ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์œ„ ๋ฌธ์ œ๋“ค์— ๋Œ€์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋žœ์žญ์…˜ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ œ์–ดํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋ณ‘ํ–‰์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.


๐Ÿ‘ ๋ณ‘ํ–‰์ œ์–ด์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”๊ฐ€?

 

๐Ÿ‘Š ์Šค์ผ€์ฅด

๐Ÿ™Œ ์ง๋ ฌ ์Šค์ผ€์ฅด

ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ

๐Ÿ™Œ ๋น„์ง๋ ฌ ์Šค์ผ€์ฅด

ํŠธ๋žœ์žญ์…˜ ๋ณ‘๋ ฌ ์ˆ˜ํ–‰ํ•˜๋Š” ์Šค์ผ€์ฅด, ์ธํ„ฐ๋ฆฌ๋น™๋ฐฉ์‹


๐Ÿ‘Š ๋กœํ‚น(Locking, ์ž๋ฌผ์‡ )

๊ณต์ค‘ํ™”์žฅ์‹ค์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ค‘์ด๋ฉด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์€ ๋ฌธ์ด ์ž ๊ฒจ์žˆ์–ด ๋“ค์–ด์˜ค์ง€ ๋ชปํ•จ.

ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์ด ํ•ด์ œ๋˜์ง€ ์•Š์œผ๋ฉด ๊ต์ฐฉ์ƒํƒœ(Dead-Lock)์— ๋น ์ ธ ๋ฌดํ•œ์ • ๊ธฐ๋‹ค๋ ค์•ผ ํ•จ.

  • ์„ฑ์žฅ(ํ™•์žฅ)๋‹จ๊ณ„(Growing Phase) : ์ž ๊ทธ๊ธฐ
  • ์ถ•์†Œ๋‹จ๊ณ„(Shrinking Phase) : ์ž ๊ธˆํ•ด์ œ
  • ์ „์šฉ๋กœํฌ : ์ฝ๊ธฐ + ์“ฐ๊ธฐ ํ—ˆ์šฉ
  • ๊ณต์šฉ๋กœํฌ : ์ฝ๊ธฐ๋งŒ ํ—ˆ์šฉ

๐Ÿ‘Š ํƒ€์ž„์Šคํƒฌํ”„(Time-Stamp, ๋ฒˆํ˜ธํ‘œ)

์€ํ–‰์ฒ˜๋Ÿผ ํŠธ๋žœ์žญ์…˜๋“ค์—๊ฒŒ ๋ฒˆํ˜ธํ‘œ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์ˆœ์„œ์— ๋งž๊ฒŒ ์‹คํ–‰ํ•จ.

ํŠธ๋žœ์žญ์…˜์ด ์‹œ์Šคํ…œ์— ๋“ค์–ด์˜จ ์‹œ๊ฐ„์ˆœ์„œ๋กœ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ๊ทธ ์‹œ๊ฐ„์˜ CPU ํด๋Ÿญ์ฃผํŒŒ์ˆ˜๋กœ ๋ถ€์—ฌํ•จ.

728x90
๋ฐ˜์‘ํ˜•