Shadow Paging

Shadow Paging์€ DB ๊ตฌํ˜„์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•๋ก  ์ค‘ ํ•˜๋‚˜๋‹ค.
Copy on write๋ฅผ ์‘์šฉํ•ด์„œ ์›์ž์„ฑ๊ณผ ๋‚ด๊ตฌ์„ฑ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

์š”์ฆ˜์˜ DB ์‹œ์Šคํ…œ๋“ค์€ ์ด๊ฒƒ๋ณด๋‹ค๋Š” WAL ๊ฐ™์€ ๋กœ๊ทธ ๊ธฐ๋ฐ˜์˜ ์›์ž์„ฑ ์œ ์ง€ ๊ธฐ๋ฒ•์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์‹ค์ƒ ๊ฑฐ์˜ ์‚ฌ์–‘๋œ ๋ฐฉ๋ฒ•๋ก ์ด๊ธด ํ•˜๋‹ค.
https://blog.naver.com/sssang97/223233122052




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

์›๋ฆฌ๋Š” ๋Œ€๋žต ์ด๋ ‡๋‹ค.


https://www.geeksforgeeks.org/shadow-paging-dbms/

  1. ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ˆ˜์ • ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์›๋ณธ์„ ๋ณต์ œํ•ด์„œ shadow page๋ผ๋Š” row๋ฅผ ๋งŒ๋“ ๋‹ค.

  2. commit/rollback์ด ๋˜๊ธฐ ์ „์˜ ์ˆ˜์ •์€ shadow page์— ๋Œ€ํ•ด์„œ๋งŒ ์ฒ˜๋ฆฌ๋˜๊ณ , ์›๋ณธ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

  3. commit์ด ๋œ๋‹ค๋ฉด ์ˆ˜์ •์ด ๊ฐ€ํ•ด์ง„ shadow page๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์ฐธ์กฐ๋งŒ ๊ต์ฒดํ•œ๋‹ค.

  4. rollback์ด ๋œ๋‹ค๋ฉด shadow page๋ฅผ ํ๊ธฐํ•˜๋ฉด ๋œ๋‹ค.



๊ฐ๊ฐ์˜ ์“ฐ๊ธฐ๋Š” shadow page๋กœ ์ธํ•ด ๊ฒฉ๋ฆฌ๋˜๋ฏ€๋กœ ๋ฌด์–ธ๊ฐ€ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‚ด๊ตฌ์„ฑ์„ ๊ตฌํ˜„ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋™์‹œ์„ฑ๊ณผ ์ˆœ์ฐจ์„ฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ „์ œ ํ•˜์—์„œ๋Š” atomicํ•œ commit๊ณผ rollback ๋™์ž‘์„ ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.




๋ฒ„๋ ค์ง„ ์ด์œ 

  1. ๋™์‹œ์„ฑ ์“ฐ๊ธฐ ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋งค์šฐ ์–ด๋ ต๋‹ค.
    ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ๊ฐ์˜ shadow page๊ฐ€ ์ƒ๊ธธํ…๋ฐ, ์ด๊ฑธ ๋ฌด์Šจ ์ˆ˜๋กœ ๋ณ‘ํ•ฉํ•˜๊ฒ ๋Š”๊ฐ€? ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ shadow page๊ฐ€ ์ž๋ž‘ํ•˜๋Š” ๋‹จ์ˆœ์„ฑ์ด ํŒŒ๊ดด๋˜๋Š” ๊ฒƒ์ด๋‹ค.

  2. ์„ฑ๋Šฅ ๋ฌธ์ œ
    ๋””์Šคํฌ ์•ก์„ธ์Šค ์ธก๋ฉด์—์„œ๋„ ์ข€ ๋А๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    ๋””์Šคํฌ I/O๋Š” ์‹ค์ œ๋กœ ๋””์Šคํฌ์— ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜์–ด์žˆ์–ด์•ผ ์ˆœ์ฐจ I/O๋กœ ๋น ๋ฅด๊ฒŒ ์ฝ์–ด์˜ฌ ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ, shadow paging์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ๊ฐ์˜ page๋“ค์ด ์‚ฌ๋ฐฉ์— ํฉ๋ฟŒ๋ ค์ง„ ์ฑ„๋กœ ์ €์žฅ๋  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ํ’€์Šค์บ”์ด ์ž‘์‚ด๋‚˜๋Š” ๊ฒƒ์ด๋‹ค.




์ฐธ์กฐ
https://en.m.wikipedia.org/wiki/Shadow_paging
https://www.geeksforgeeks.org/shadow-paging-dbms/