μŠ€ν„°λ””/λ°μ΄ν„°λ² μ΄μŠ€

[CS186] Introduction to Database Systems - Week 4

moon101 2023. 5. 20. 15:30

β›… 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보닀 더 νš¨κ³Όμ μ΄λ‹€