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