Repeatable Read + ๋น๊ด๋ฝ vs. SERIALIZABLE์ ์ฐจ์ด์ ์ด ๋ญ๊น?
๐ย ์๋ฌธ์
๋ ํ๋ ๋ ์๋ฌธ์ .
์ฃผ๋ฌธ ์ฌ๊ณ ๊ฐ ๋ง์ด๋์ค๊ฐ ๋๋ ๋์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋น๊ด์ ๋ฝ์ ์ ์ฉํด ํด๊ฒฐํ์๋ค. SELECT FOR UPDATE
๋ฅผ ์ ์ฉํ ๋ถ๋ถ์ ์ฌ๊ณ ์๋์ ์กฐํํด์ค๋ ๋ถ๋ถ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ณ ์๋์ ์กฐํํ๋ ๋ถ๋ถ์ ํธ๋์ญ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ํด๋นํ๋ค.
์ด ๊ฒฝ์ฐ ํธ๋์ญ์ ์ด ๋๋์ผ ๋ฝ์ด ํ๋ฆฌ๊ฒ ๋ ํ ๋ฐ ๊ทธ๋ ๊ฒ๋๋ฉด ๋ชจ๋ ๊ฑธ ์ง๋ ฌ๋ก ์คํํ๋ Serializable๊ณผ ๋ณ๋ฐ ๋ค๋ฅผ ๋ฐ๊ฐ ์๋ ๊ฒ ์๋๊ฐ?ํ๋ ์๋ฌธ์ด ๋ค์๋ค.
Serializable ๊ฒฉ๋ฆฌ ์์ค์ ๋ชจ๋ ๊ฑธ ์์ฐจ์ ์ผ๋ก, ์ง๋ ฌ๋ก ์คํํ๋ค๋ ๊ฒ๋ง ์๊ณ ์์์ง ์ฝ๊ธฐ ์ S-Lock์ ๊ฑด๋ค๋ ๊ฑด ์ด๋ฒ์ ์กฐ์ฌํ๋ฉด์ ์ฒ์ ์์๋ค.
์ ์ผ ํฐ ์ฐจ์ด์ ์ repeatable read๋ ์กฐํ ์ s-lock์ ์ ๊ฑธ๊ณ , serializable์ ๋ฝ์ ๊ฑด๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋์ Repeatable Read ๊ฒฉ๋ฆฌ ์์ค์์๋ ๋ฐ๋๋ฝ์ด ๋ฐ์ํ์ง ์์ง๋ง, Serializabel ๊ฒฉ๋ฆฌ ์์ค์์๋ ๋ฐ๋๋ฝ์ด ๋ฐ์ํ ์ ์๋ค.
๋ฐ๋๋ฝ์ด ๋ฐ์ํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)์ด ํ ํธ๋์ญ์ ์ ๊ฐ์ ๋ก ๋กค๋ฐฑ์์ผ์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค. ์ด๋ ๊ฒฐ๊ตญ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ์ด๋ ค์์ง๋ฉฐ, ํธ๋์ญ์ ์ด ์์ฐจ์ ์ผ๋ก, ์ง๋ ฌ๋ก ์ฒ๋ฆฌ๋์ด์ผ ํ๋ฏ๋ก ๋์์ฑ์ด ํฌ๊ฒ ์ ํ๋๋ค.
์์ฝํ์๋ฉด, Repeatable Read๋ ์ฝ๊ธฐ ์์ ์ ์ ๊ธ์ ์ ์ฉํ์ง ์์ง๋ง, Serializable์ ์ฝ๊ธฐ์๋ S-Lock์ ์ ์ฉํ์ฌ, ๋ชจ๋ ์์ ์ ์ง๋ ฌ๋ก ์คํํ๊ฒ ํจ์ผ๋ก์จ ๋์์ฑ์ด ํฌ๊ฒ ๋จ์ด์ง๊ณ ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํด์ง๋ค.
โย ์ฐธ๊ณ ๊ฒ์๋ฌผ

Uploaded by N2T