Concurrency control
Concurrency control : schedule, serializability
Schedule
๊ฐ transaction๋ค์ ์ฌ๋ฌ operation์ผ๋ก ๊ตฌ์ฑ๋์ด์์
transaction๋ค์ operation ์คํ ์์๋ฅผ ์ญ ๋์ดํ ๊ฒ์ schedule์ด๋ผ๊ณ ํจ
์ฌ๋ฌ ํธ๋์ญ์ ์ ์์๋๋ก ์คํ๋ ์๋ ์๊ณ , operation ์์๊ฐ ์์ฌ์ ์คํ๋ ์๋ ์์
๊ฐ transaction ๋ด์ operatione๋ค์ ์์๋ ๋ฐ๋์ง ์์ (ํธ๋์ญ์ ๊ฐ์ ์คํผ๋ ์ด์ ์คํ ์์๋ ๋ฐ๋ ์ ์์)
Serial schedule
์๋ฏธ
transaction์ operation ์คํ ์์๊ฐ ์์ด์ง ์๊ณ , ํ ํธ๋์ญ์ ๋จผ์ ์ํํ ๋ค ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ํ๋๋ ๊ฒ์ ์๋ฏธํจ
transaction๋ค์ด ๊ฒน์น์ง ์๊ณ ํ ๋ฒ์ ํ๋์ฉ ์คํ๋๋ schedule
์ฑ๋ฅ
ํ๋ฒ์ ํ๋์ ํธ๋์ญ์ ๋ง ์คํํ๊ธฐ ๋๋ฌธ์ ๋์์ฑ์ด ์๊ณ , I/O์์ ์ ํ๋ ๋์ CPU๋ ๋๊ณ ์๋ ์ํ๊ฐ ๋จ
operation ์์๋ก ์ธํด ๊ฐ์ด ๊ผฌ์ด๋ ๊ฒฝ์ฐ๋ ์์
๋์์ฑ์ด ์์ด์ ์ข์ ์ฑ๋ฅ์ ๋ผ ์ ์๊ณ , ํ์ค์ ์ผ๋ก ์ฌ์ฉํ ์ ์์(์ฌ๋ฌ ํธ๋์ญ์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์)
Nonserial schedule
์๋ฏธ
ํธ๋์ญ์ ๋ค์ด ๊ฒน์ณ์(interleaving) ์คํ๋๋ schedule
์ฑ๋ฅ
ํธ๋์ญ์ ๋ค์ด ๊ฒน์ณ์ ์คํํ๊ธฐ ๋๋ฌธ์ ๋์์ฑ์ด ์์. CPU๊ฐ ๋๊ณ ์๋ ์๊ฐ์ด ์ค์ด๋ฆ
operation ์์๊ฐ ์์ฌ์ ๊ฐ์ด ๊ผฌ์ด๋ ๊ฒฝ์ฐ ๋ฐ์ ๊ฐ๋ฅ
๋์์ฑ ๋๋ถ์ ์ข์ ์ฑ๋ฅ์ ๋ผ ์ ์์ง๋ง ์งง์. ๊ฐ์ ์๊ฐ์ ๋ ๋ง์ ํธ๋์ญ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
๋ฌธ์ ์
์ด๋ค ํํ๋ก ๊ฒน์ฒ์ ์คํ๋๋์ง์ ๋ฐ๋ผ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์
Nonserial schedule๋ก ๋น ๋ฅด๊ฒ ํ๋, ์๋์ง ์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ์ง ์๋ ๋ฐฉ๋ฒ์ด ํ์ํจ. ๊ทธ๊ฒ์ ์ํด์ schedule์ด ๋ฌด์์ธ์ง์ ๋ํด ์ ์ํ ํ์๊ฐ ์์
Conflict serializable
serial schedule๊ณผ conflict equivalent์ธ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํจ
serial schedule๊ณผ conflict equivalent์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉฐ, ๋์์ฑ์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฆ (nonserial schedule์ด๋๋ผ๋ conflict serializableํ ์ ์์)
conflict serializableํ nonserial schedule์ ํ์ฉํ๋ฉด ์ข์ ๋ฏ!
๊ตฌํ
์ฌ๋ฌ ํธ๋์ญ์ ์ ๋์์ ์คํํด๋ schedule์ด Conflict serializableํ๋๋ก ๋ณด์ฅํ๋ ํ๋กํ ์ฝ์ ์ ์ฉํจ
concurrency control์ด serializableํ๊ฒ ๋ง๋ค์ด์ค. ACID์ค Isolation์ด ์ด๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํด์ค
Conflict (of two operations)
์๋ฏธ
๋๊ฐ ์ด์์ ํธ๋์ญ์ ์์ ์๋ก ์ํฅ์ ์ค์ ์ ์ฒด ๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ๋ operation๋ค
conflict operation์ ์์๊ฐ ๋ฐ๋๋ฉด ๊ฒฐ๊ณผ๋ ๋ฐ๋
conflict์ด๊ธฐ ์ํ ์กฐ๊ฑด
์๋ก ๋ค๋ฅธ transaction ์์
๊ฐ์ ๋ฐ์ดํฐ์ ์ ๊ทผ
์ต์ ํ๋๋ write operation
conflict ์ข
๋ฅ
read-write conflict
write-write conflict
Conflict equivalent (for two schedules)
์กฐ๊ฑด
๋ schedule์ ๊ฐ์ transaction๋ค์ ๊ฐ์ง
์ด๋ค conflicting operations์ ์์๋ ์์ชฝ schedule ๋ชจ๋ ๋์ผํจ
ํ schedule์ conflict์์ operation๋ค์ ์์๊ฐ, ๋ค๋ฅธ schedule์์๋ ๋์ผํ ์์๋ก ์คํ๋จ

Last updated