WAL (Write Ahead Log)

WAL๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์˜ ์‹œ์Šคํ…œ์—์„œ ์›์ž์„ฑ๊ณผ ๋‚ด๊ตฌ์„ฑ(durability)์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.



์ด๊ฒŒ ์™œ ํ•„์š”ํ•œ๊ฐ€?

๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ์žฅ์•  ์ƒํ™ฉ์—์„œ์˜ ๋Œ€์‘์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ insert๋กœ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ค‘๊ฐ„์— ์ „์›์ด ๋‚˜๊ฐ€์„œ ์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์ง„๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๊ฒ ๋Š”๊ฐ€?

๋ณ„๋‹ค๋ฅธ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ํ‚ค๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋„์ €๋„ ์•„๋‹Œ ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ์„ ๊ฒƒ์ด๋‹ค.
์ด๋Ÿฐ DB๊ฐ€ ์ง„์งœ ์žˆ๋‹ค๋ฉด ์ด๊ฑด ์›์ž์„ฑ์ด ์ง€์ผœ์ง€์ง€๋„ ์•Š๊ณ , ๋ณต๊ตฌ๋„ ์•ˆ๋˜๋Š” ํ๊ธ‰์‹œ์Šคํ…œ์ด๋‹ค.

WAL์€ ์ด๋Ÿฐ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๋งค์ปค๋‹ˆ์ฆ˜์ด๋‹ค.



WAL์˜ ์›๋ฆฌ

WAL๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋กœ๊ทธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ insert ๋ช…๋ น์ด ์‹คํ–‰๋œ๋‹ค๋ฉด, DB๋Š” ๋จผ์ € ๊ทธ๊ฑธ ๋กœ๊ทธ๋กœ ๊ธฐ๋กํ•œ๋‹ค. ์ด๊ฑด append๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ผ์ •๋Ÿ‰์˜ ์ž‘์—…์ด ๋กœ๊ทธ์— ๋ˆ„์ ๋˜๋ฉด DB๋Š” ๊ทธ ๋กœ๊ทธ๋ฅผ ๋ชจ์•„๋‹ค ์‹ค์ œ ๋””์Šคํฌ ์ €์žฅ๊ณต๊ฐ„์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ €์žฅํ•œ ๋กœ๊ทธ๋Š” ๋กœ๊ทธ ๋ชฉ๋ก์—์„œ ์‚ญ์ œํ•œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์›์ž์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๊ณ , ์ค‘๊ฐ„์— ์‹คํŒจํ•˜๋”๋ผ๋„ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—๋Ÿฌ์ฒ˜๋ฆฌ๋‚˜ ๋ณต๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.


์ฐธ์กฐ
https://en.m.wikipedia.org/wiki/Write-ahead_logging
https://en.m.wikipedia.org/wiki/Journaling_file_system
https://nays111.tistory.com/m/12