Database (λ°μ΄ν„°λ² μ΄μŠ€)

DB λ°μ΄ν„°λ² μ΄μŠ€ - 데이터 버퍼 관리 νŠΈλžœμž­μ…˜ 처리 μ‹œ 데이터 기둝

9taetae9 2024. 4. 21. 18:41
728x90

데이터 버퍼 κ΄€λ¦¬λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—μ„œ 볡ꡬ μ „λž΅κ³Ό λ°€μ ‘ν•˜κ²Œ μ—°κ΄€λ˜μ–΄ 있으며, 특히 νŠΈλžœμž­μ…˜ 쀑과 후에 λ””μŠ€ν¬λ‘œ 데이터λ₯Ό μ“°κ³  μ½λŠ” 방식에 큰 영ν–₯을 λ―ΈμΉœλ‹€. 이와 κ΄€λ ¨λœ Force와 Steal 정책을 μ•Œμ•„λ³΄μž.

 

νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλœ ν›„ λ°”λ‘œ 데이터λ₯Ό λ””μŠ€ν¬μ— 기둝할 것인가?

Force μ •μ±…
νŠΈλžœμž­μ…˜μ΄ 컀밋될 λ•Œ λͺ¨λ“  μ—…λ°μ΄νŠΈλœ 블둝을 λ””μŠ€ν¬μ— 쓰도둝 μš”κ΅¬ν•œλ‹€.
μž₯점: νŠΈλžœμž­μ…˜μ΄ μ»€λ°‹λ˜λ©΄ λ³€κ²½ 사항이 λ””μŠ€ν¬μ— λ°˜λ“œμ‹œ μ €μž₯λ˜μ–΄ 볡ꡬ가 λ‹¨μˆœν•΄μ§„λ‹€. 이 νŠΈλžœμž­μ…˜μ— λŒ€ν•œ μž¬μ‹€ν–‰(Redo)이 ν•„μš” μ—†λ‹€.
단점: λ§Žμ€ 블둝을 λ””μŠ€ν¬μ— μ“°λŠ” μž‘μ—…μ΄ ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— 컀밋 μ‹œκ°„μ΄ κΈΈμ–΄μ§ˆ 수 μžˆμ–΄ νŠΈλžœμž­μ…˜ 컀밋 과정이 느렀질 수 μžˆλ‹€.
No-Force μ •μ±…
νŠΈλžœμž­μ…˜ 컀밋 μ‹œ μ—…λ°μ΄νŠΈλœ 블둝을 λ””μŠ€ν¬μ— μ“Έ ν•„μš”κ°€ μ—†λ‹€.
μž₯점: νŠΈλžœμž­μ…˜ μ‹œμŠ€ν…œμ΄ λͺ¨λ“  μ—…λ°μ΄νŠΈλ₯Ό λ””μŠ€ν¬μ— μ“Έ λ•ŒκΉŒμ§€ 기닀릴 ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμ— 컀밋 μ‹œκ°„μ΄ 빨라질 수 μžˆλ‹€.
단점: 컀밋 μ‹œμ μ—μ„œ λ””μŠ€ν¬μ— μ“°μ§€ μ•Šμ€ λ³€κ²½ 사항이 μ‹œμŠ€ν…œμ΄ μΆ©λŒν•  경우 손싀될 수 μžˆμ–΄, 볡ꡬ ν›„ μž¬μ‹€ν–‰(Redo) κΈ°λŠ₯이 κ°•λ ₯ν•΄μ•Ό ν•œλ‹€.

 

νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλ˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ 데이터λ₯Ό λ””μŠ€ν¬μ— 기둝할 것인가?

Steal μ •μ±…
μ»€λ°‹λ˜μ§€ μ•Šμ€ νŠΈλžœμž­μ…˜μ˜ μ—…λ°μ΄νŠΈκ°€ ν¬ν•¨λœ 블둝을 νŠΈλžœμž­μ…˜μ΄ μ»€λ°‹λ˜κΈ° 전에도 λ””μŠ€ν¬μ— μ“Έ 수 μžˆλ‹€.
μž₯점: 버퍼 곡간을 더 효과적으둜 κ΄€λ¦¬ν•˜λ©°, μ»€λ°‹λ˜μ§€ μ•Šμ€ λ³€κ²½ 사항을 λ””μŠ€ν¬μ— μ“°λ©΄μ„œ 더 λ§Žμ€ νŠΈλžœμž­μ…˜μ„ λ™μ‹œμ— μ²˜λ¦¬ν•  수 μžˆλ‹€.
단점: μ΄λŸ¬ν•œ λ³€κ²½ 사항을 λ‚˜μ€‘μ— λ˜λŒλ €μ•Ό ν•  μˆ˜λ„ 있기 λ•Œλ¬Έμ— 포괄적인 μ·¨μ†Œ(Undo) λ©”μ»€λ‹ˆμ¦˜μ΄ μš”κ΅¬λœλ‹€.
No-Steal μ •μ±…
μ»€λ°‹λ˜μ§€ μ•Šμ€ νŠΈλžœμž­μ…˜μ˜ λ³€κ²½ 사항이 ν¬ν•¨λœ 블둝을 λ””μŠ€ν¬μ— μ“°μ§€ λͺ»ν•˜κ²Œ ν•œλ‹€.
μž₯점: μ‹œμŠ€ν…œμ΄ μΆ©λŒν•˜κΈ° 전에 μ»€λ°‹λ˜μ§€ μ•Šμ€ νŠΈλžœμž­μ…˜μ— λŒ€ν•œ μ·¨μ†Œκ°€ ν•„μš” μ—†μ–΄ 볡ꡬ가 λ‹¨μˆœν•΄μ§„λ‹€.
단점: μ»€λ°‹λ˜μ§€ μ•Šμ€ λ³€κ²½ μ‚¬ν•­μœΌλ‘œ 인해 버퍼 곡간을 효율적으둜 μ‚¬μš©ν•˜μ§€ λͺ»ν•˜λ©°, 곡간 ν™œμš©μ— μ œν•œμ„ λ°›λŠ”λ‹€.

 

효과적인 λ³΅κ΅¬ μ•Œκ³ λ¦¬μ¦˜ μ§€μ›
쒋은 λ³΅κ΅¬ μ•Œκ³ λ¦¬μ¦˜μ€ "Steal" & "No-Force" 정책을 지원해야 ν•œλ‹€. μ΄λŠ” νŠΈλžœμž­μ…˜ 컀밋과 μ‹œμŠ€ν…œ μΆ©λŒμ„ μ²˜λ¦¬ν•˜λŠ” 데 μžˆμ–΄ μœ μ—°μ„±κ³Ό νš¨μœ¨μ„±μ„ μ œκ³΅ν•œλ‹€.

Steal : λ°μ΄ν„°λ² μ΄μŠ€κ°€ 버퍼 곡간을 보닀 효과적으둜 κ΄€λ¦¬ν•˜κ³  더 λ§Žμ€ νŠΈλžœμž­μ…˜μ„ λ™μ‹œμ— μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•œλ‹€. (Undo ν•„μš”) 
No-Force : 컀밋 μ‹œμ μ˜ λ””μŠ€ν¬ I/Oλ₯Ό 쀄여 νŠΈλžœμž­μ…˜ 컀밋 속도λ₯Ό 높인닀. (Redo ν•„μš”)

 

"Steal" & "No-Force" μ •μ±…의 지원을 톡해 μ‹œμŠ€ν…œ μ„±λŠ₯κ³Ό μ‹ λ’°μ„± μ‚¬μ΄μ˜ κ· ν˜•μ„ μ œκ³΅ν•  수 μžˆλ‹€. λ³΅μž‘ν•œ 볡ꡬ μ•Œκ³ λ¦¬μ¦˜ ν•„μš”μ„±μ€ μžˆμ§€λ§Œ, 데이터 무결성과 κ°€μš©μ„±μ„ μ‹œμŠ€ν…œ 였λ₯˜ λ°œμƒ μ‹œμ—λ„ 보μž₯ν•  수 μžˆμ–΄ 데이터 μ²˜λ¦¬λŸ‰κ³Ό 데이터 무결성이 μ€‘μš”ν•œ κ³ μ„±λŠ₯ λ°μ΄ν„°λ² μ΄μŠ€ ν™˜κ²½μ— μ ν•©ν•˜λ‹€.

728x90