๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[CS186] Introduction to Database Systems - Week 4

by moon101 2023. 5. 20.

โ›… Buffer Management โ›…

Buffer Manager

  • ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ํŽ˜์ด์ง€๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ  ํŒŒ์ผ ๋ฐ ์ธ๋ฑ์Šค ๋งค๋‹ˆ์ €์˜ ํŽ˜์ด์ง€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค
  • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํ•œ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„ํผ ๋งค๋‹ˆ์ €๋Š” ๊ณต๊ฐ„์ด ๋‹ค ์ฐฐ ๊ฒฝ์šฐ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ํ‡ด์ถœํ• ์ง€๋„ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค

Buffer Pool

  • ๋ฉ”๋ชจ๋ฆฌ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์œผ๋กœ ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜์—ฌ ๋ฒ„ํผ ํ’€๋กœ ๋ณ€ํ™˜๋œ๋‹ค
  • ๋ฒ„ํผ ํ”„๋ ˆ์ž„์€ ํŽ˜์ด์ง€๊ฐ€ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์–‘์˜ ๋ฐ์ดํ„ฐ ๋งŒํผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ทธ๋ž˜์„œ ํŽ˜์ด์ง€๋Š” ํ”„๋ ˆ์ž„์— ๋”ฑ ๋งž๊ฒŒ ๋“ค์–ด๊ฐ„๋‹ค)
  • ํšจ์œจ์ ์œผ๋กœ ํ”„๋ ˆ์ž„์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๊ณ  ๋ฒ„ํผ ๋งค๋‹ˆ์ €๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•  ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์„ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•œ๋‹ค
  • ๋ฉ”ํƒ€ํ…Œ์ด๋ธ”์€ 4๊ฐ€์ง€ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
    • 1. Frame ID: ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ๊ณ ์œ ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์žˆ๋‹ค
    • 2. Page ID: ํ˜„์žฌ ํ”„๋ ˆ์ž„์ด ํฌํ•จํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค
    • 3. Dirty Bit: ํŽ˜์ด์ง€๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค
    • 4. Pin Count: ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ์š”์ฒญ์ž ์ˆ˜๋ฅผ ์ถ”์ ํ•œ๋‹ค
  • replacement policy: ํŽ˜์ด์ง€์˜ ์ ‘๊ทผ ํŒจํ„ด์— ์˜์กดํ•œ๋‹ค
  • optimal policy: page hit์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค
  • page hit: ์š”์ฒญ๋œ ํŽ˜์ด์ง€๊ฐ€ ๋””์Šคํฌ์— ๊ฐˆ ํ•„์š”์—†์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฐพ์€ ๊ฒฝ์šฐ
  • hit rate: (# of page hits) / (# of page access)

LRU Replacement and Clock Policy

  • ๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” replacement policy๋Š” LRU (Least Recently Used)์ด๋‹ค. 
  • ํ•˜์ง€๋งŒ LRU๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— clock policy๋Š” LRU๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌํ˜„์„ ์ œ๊ณตํ•œ๋‹ค
  • Clock policy๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์˜ ์ฐธ์กฐ ๋น„ํŠธ ์—ด๊ณผ clock hand variable์„ ์‚ฌ์šฉํ•ด์„œ ํ˜„์žฌ ํ”„๋ ˆ์ž„์„ ์ถ”์ ํ•ด์„œ LRU๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค
  • ์ฐธ์กฐ ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ณต๊ฐ„๊ณผ ์‹œ๊ฐ„๋น„์šฉ์ด ์ค„์–ด๋“ ๋‹ค
  • LRU์—์„œ๋Š” ๋ฒ„ํผ ๋งค๋‹ˆ์ €๊ฐ€ Last Used ์—ด์˜ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ์•„์•ผ ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์ง€๋งŒ clock policy์—์„œ๋Š” clock hand๋งŒ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋œ๋‹ค
  • Sequential Scan + LRU => sequential flooding (๋ฒ„ํผ ํ’€ ์‚ฌ์ด์ฆˆ๊ฐ€ ํŽ˜์ด์ง€์˜ ์ˆ˜๋ณด๋‹ค ์ž‘๊ณ  ๋ฐ˜๋ณตํ•ด์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ฝ์–ด์•ผ ํ•  ๋•Œ ์บ์‹œ์˜ hit rate์ด 0% ๊ฐ€ ๋œ๋‹ค)

MRU Replacement

  • ๋‹ค๋ฅธ ๊ต์ฒด ์ •์ฑ…์œผ๋กœ๋Š” MRU, Most Recently Used๊ฐ€ ์žˆ๋‹ค
  • ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉ๋œ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค
  • sequential flooding ์ ‘๊ทผ ํŒจํ„ด์—์„œ๋Š” MRU๊ฐ€ LRU๋ณด๋‹ค ๋” ํšจ๊ณผ์ ์ด๋‹ค

  

๋Œ“๊ธ€