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์ด๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด

  1. ์„œ๋กœ ๋‹ค๋ฅธ transaction ์†Œ์†

  2. ๊ฐ™์€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ

  3. ์ตœ์†Œ ํ•˜๋‚˜๋Š” write operation

conflict ์ข…๋ฅ˜

  • read-write conflict

  • write-write conflict

Conflict equivalent (for two schedules)

์กฐ๊ฑด

  1. ๋‘ schedule์€ ๊ฐ™์€ transaction๋“ค์„ ๊ฐ€์ง

  2. ์–ด๋–ค conflicting operations์˜ ์ˆœ์„œ๋„ ์–‘์ชฝ schedule ๋ชจ๋‘ ๋™์ผํ•จ

    • ํ•œ schedule์˜ conflict์—์„œ operation๋“ค์˜ ์ˆœ์„œ๊ฐ€, ๋‹ค๋ฅธ schedule์—์„œ๋„ ๋™์ผํ•œ ์ˆœ์„œ๋กœ ์‹คํ–‰๋จ

Last updated