๊ด€๋ฆฌ ๋ฉ”๋‰ด

Unfazedโ—๏ธ๐ŸŽฏ

DB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ๋ฒ„ํผ๋ง(WAL/write ahead logging, Pinning, dual paging problem) ๋ณธ๋ฌธ

Database (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)

DB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ๋ฒ„ํผ๋ง(WAL/write ahead logging, Pinning, dual paging problem)

9taetae9 2024. 4. 21. 17:55
728x90

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ๋ฒ„ํผ๋ง์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

1. ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ๋ฒ„ํผ ๊ด€๋ฆฌ 

์ƒˆ๋กœ์šด ๋ธ”๋ก์ด ํ•„์š”ํ•  ๋•Œ, ๋ฒ„ํผ๊ฐ€ ๊ฐ€๋“ ์ฐผ๋‹ค๋ฉด ๊ธฐ์กด์˜ ๋ธ”๋ก ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฒ„ํผ์—์„œ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค.
์ œ๊ฑฐ๋  ๋ธ”๋ก์ด ์—…๋ฐ์ดํŠธ๋œ ๊ฒฝ์šฐ, ๊ทธ ๋ธ”๋ก์€ ๋””์Šคํฌ๋กœ ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

2. ์“ฐ๊ธฐ ์„ ํ–‰ ๋กœ๊น…(WAL, Write-Ahead Logging)
์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฐ€์ง„ ๋ธ”๋ก์ด ๋””์Šคํฌ๋กœ ์ถœ๋ ฅ๋  ๊ฒฝ์šฐํ•ด๋‹น ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์–ธ๋‘(undo) ์ •๋ณด๋ฅผ ํฌํ•จํ•œ ๋กœ๊ทธ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋จผ์ € ์•ˆ์ •์ ์ธ ์ €์žฅ์†Œ์˜ ๋กœ๊ทธ์— ์ถœ๋ ฅ๋œ๋‹ค. (๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•จ)
3. ๋ธ”๋ก์˜ ๊ณ ์ •(Pinning)
๋ธ”๋ก์ด ๋””์Šคํฌ๋กœ ์ถœ๋ ฅ๋  ๋•Œ๋Š” ํ•ด๋‹น ๋ธ”๋ก์— ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง„ํ–‰ ์ค‘์ด์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค(๋ธ”๋ก์€ ๊ณ ์ •๋˜์–ด์•ผ ํ•จ).

์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ณด์žฅ๋  ์ˆ˜ ์žˆ๋‹ค.
1) ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ์“ฐ๊ธฐ ์ „์— ํŠธ๋žœ์žญ์…˜์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ํฌํ•จํ•˜๋Š” ๋ธ”๋ก์— ๋Œ€ํ•ด ๋ฐฐํƒ€์  ์ž ๊ธˆ์„ ํš๋“
2) ์“ฐ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ž ๊ธˆ์„ ํ•ด์ œ

์งง์€ ๊ธฐ๊ฐ„ ๋™์•ˆ ์œ ์ง€๋˜๋Š” ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์„ ๋ž˜์น˜(latches)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
4. ๋ฒ„ํผ์˜ ๊ตฌํ˜„
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„ํผ๋Š” 1) ์‹ค์ œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜ˆ์•ฝ๋œ ์˜์—ญ(๋‹จ์  : ์œ ์—ฐ์„ฑ ์ œํ•œ, ํ•„์š”์‚ฌํ•ญ ๋ณ€๊ฒฝ) ๋˜๋Š” 2) ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๊ตฌํ˜„(๋‹จ์  : ์ด์ค‘ ํŽ˜์ด์ง• ๋ฌธ์ œ)๋  ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ์•ฝ๋œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฒ„ํผ๋ฅผ ๊ตฌํ˜„์‹œ ๋‹จ์ 
๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์ „์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„ํผ์™€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์— ๋ถ„ํ• ๋˜์–ด, ์œ ์—ฐ์„ฑ์ด ์ œํ•œ๋จ.
ํ•„์š”์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ : OS์€ ์–ธ์ œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆŒ์ง€ ๊ฐ€์žฅ ์ž˜ ์•Œ์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ๋ถ„ํ• ์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค.
5. ์ด์ค‘ ํŽ˜์ด์ง• ๋ฌธ์ œ(Dual Paging Problem)
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„ํผ๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‹จ์ ์ด ์žˆ๋‹ค.
- ์šด์˜ ์‹œ์Šคํ…œ์ด ์ˆ˜์ •๋œ ํŽ˜์ด์ง€๋ฅผ ์ซ’๊ฒจ๋‚ด์•ผ ํ•  ๋•Œ, ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” ๋””์Šคํฌ์˜ ์Šค์™‘ ๊ณต๊ฐ„์— ์“ฐ์—ฌ์ง„๋‹ค.
- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ฒ„ํผ ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ์— ์“ฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์„ ๋•Œ, ๋ฒ„ํผ ํŽ˜์ด์ง€๊ฐ€ ์Šค์™‘ ๊ณต๊ฐ„์— ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์Šค์™‘ ๊ณต๊ฐ„์—์„œ ๋””์Šคํฌ๋กœ ๋‹ค์‹œ ์ฝ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€ I/O๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
   ์ด์ค‘ ํŽ˜์ด์ง•์€ ํ”ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ์šด์˜ ์‹œ์Šคํ…œ์€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
- OS๊ฐ€ ๋ฒ„ํผ์—์„œ ํŽ˜์ด์ง€๋ฅผ ์ถ”๋ฐฉํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ๋ฐ›์•„

 ์ˆ˜์ •๋œ ๊ฒฝ์šฐ ์Šค์™‘ ๊ณต๊ฐ„์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํŽ˜์ด์ง€๋ฅผ ์ถœ๋ ฅ(๋กœ๊ทธ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ถœ๋ ฅ)ํ•œ๋‹ค.

 OS๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ„ํผ์—์„œ ํŽ˜์ด์ง€๋ฅผ ํ•ด์ œํ•ด์•ผ ํ•œ๋‹ค.

728x90