Database/SQL

MVCC(Multi-Version Concurrency Control)

์ฑ”๐Ÿป 2024. 1. 14. 11:15

1. MVCC์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•

1) Current

๋””์Šคํฌ์—์„œ ์บ์‹œ๋กœ ์ ์žฌ๋œ ์›๋ณธ ๋ธ”๋ก์„ ํ˜„์žฌ ์ƒํƒœ ๊ทธ๋Œ€๋กœ ์ฝ๋Š” ๋ฐฉ์‹

2) Consistent

์ฟผ๋ฆฌ๊ฐ€ ์‹œ์ž‘๋œ ์ดํ›„์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์˜ํ•ด ๋ณ€๊ฒฝ๋œ ๋ธ”๋ก์„ ๋งŒ๋‚˜๋ฉด ์›๋ณธ ๋ธ”๋ก์œผ๋กœ๋ถ€ํ„ฐ ๋ณต์‚ฌ๋ณธ(CR copy) ๋ธ”๋ก์„ ๋งŒ๋“ค๊ณ , ๊ฑฐ๊ธฐ์— Undo ๋ฐ์ดํ„ฐ๋ฅผ ์ ์šฉํ•จ์œผ๋กœ์จ ์ฟผ๋ฆฌ๊ฐ€ โ€˜์‹œ์ž‘๋œ ์‹œ์ โ€™์œผ๋กœ ๋˜๋Œ๋ ค์„œ ์ฝ๋Š” ๋ฐฉ์‹

2. SCN(System Commit Number)

Consistent ๋ชจ๋“œ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด SCN์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

Consistent ๋ชจ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋‹ค๊ฐ€

๋ธ”๋ก SCN > ์ฟผ๋ฆฌ SCN ? ๋ณธ์‚ฌ๋ณธ ๋ธ”๋ก ๋งŒ๋“ค๊ณ , Undo ๋ฐ์ดํ„ฐ๋ฅผ ์ ์šฉํ•œ๋‹ค.

โ‡’ ์ฟผ๋ฆฌ๊ฐ€ ์‹œ์ž‘๋œ ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ ค์„œ Read Consistency๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.


SELECT : ํ•ญ์ƒ Consistent ๋ชจ๋“œ๋กœ ๋ฐ์ดํ„ฐ Read

DML : Consistent๋กœ ์ฐพ๊ณ , Current ๋ชจ๋“œ๋กœ ์ถ”๊ฐ€/๋ณ€๊ฒฝ/์‚ญ์ œํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์€ ์›๋ณธ ๋ธ”๋ก์— ๊ฐฑ์‹ ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์‡ผํ•‘๋ชฐ์—์„œ ์ฃผ๋ฌธ ์‹œ Repeatable Read์—์„œ MVCC๋กœ ์ธํ•œ ์žฌ๊ณ ์ˆ˜๋Ÿ‰์ด ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ(๋™์‹œ์„ฑ)๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

Reference

์นœ์ ˆํ•œ SQL ํŠœ๋‹

https://product.kyobobook.co.kr/detail/S000001975837


Uploaded by N2T