Recovery Techniques
Recovery Concept
- recent consistent state : no errors in db, no inconsistencies in db
- systme log
- Catastrophic failure (์น๋ช ์ ์ฅ์ ) → backed up, redoing
- Noncatastrophic failure (๋น์ฌํด์ ์ฅ์ ) → undoing, redo, deferred update&immediate update
Caching(Buffering) of disk blocks
- ํจ์จ์ฑ์ ์ํด์ ์บ์ ์ฌ์ฉ
- DBMS cache
- < disk page ์ ๋ณด, ๋ฒํผ ์์น, … >
Buffer replacement : ๋ฒํผ ๊ต์ฒด( flush )
- dirty bit : ๋ฒํผ๊ฐ ์์ ๋์๋์ง ์ฌ๋ถ
- pin-unpin bit : ๋์คํฌ์ ์์ง ๋ค์์ธ์์์๋, ์บ์์ ํ์ด์ง ๊ณ ์
Two main strategies for flushing a modified buffer back to disk (์์ ๋ฒํผ๋ฅผ ๋์คํฌ์ ๋ค์ ๋๋๋ ค๋์๋)
- in-place updating : ์๋ ์๋๊ณณ์ผ๋ก
- shadowing : ์๋ก์ด ๋ธ๋ญ์ผ๋ก
- BFIM : before image
- AFIM : after image
Steal : ์ปค๋ฐ ์ ์๋ ๋์คํฌ๋ก ์์ ์บ์๋ฅผ ๋ด๋ณด๋ผ ์ ์์, ์ค๊ฐ์ ๋ฒํผ ๊ณต๊ฐ ํ๋ณด๊ฐ ๊ฐ๋ฅํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ์ด ์ ์ฐํจ
No-steal : ์ปค๋ฐ ์ ์ ์บ์๋ฅผ ๋ด๋ณด๋ด๋ ๊ฒ์ ๋นํ์ฉ.
Force : ์ปค๋ฐ ์ DB์ ๊ฐ์ ๋ฐ์
No-force : ๊ฐ์ X. ์ถ๊ฐ์ ์ธ saving ๊ฐ๋ฅ, ์์ฃผ ์ ๋ฐ์ดํธ๋๋ ๋ด์ฉ์ ๊ฒฝ์ฐ ์ ๋ํ ๋๋ง๋ค ๋์คํฌ์ ์ถ๋ ฅ ํ ๋ค์ ๊ฐ์ ธ์ฌ ํ์๊ฐ ์๋ค.
Deffered update = no steal, no force
Write-ahead logging
- When in-place updating is used, ๋ณต๊ตฌ๋ฅผ ์ํ log ์ฌ์ฉ ํ์
Log entry
- REDO type log entry : AFIM is needed to redo (์ฌ์์ )
- UNDO type log entry : BFIM is needed to undo (์์ ์๋์ผ๋ก ์์ )
Log is simply a sequential (append-only) disk file
- last log buffer์์ log record๋ก
- write-ahead logging approach
๋ฐ์ดํฐ๋ธ๋ญ์ด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์์ ๋์คํฌ๋ก ๋ค์ ์ธ ์ ์๊ธฐ ์ ์ ๋์คํฌ์ ๊ธฐ๋ก๋์ด์ผํจ
Write ahead logging(WAL) protocol
- log ์ํธ๋ฆฌ๊ฐ ๋ชจ๋ ๋์คํฌ์ ์ฐ์ผ๋๊น์ง ๋ฎ์ด์ฐ๊ธฐ ๋ถ๊ฐ๋ฅ
- ์ปค๋ฐ ์ฐ์ฐ์ ๋ชจ๋ log ๊ธฐ๋ก ์ ๊น์ง๋ ์๋ฃ๋์ง ์์ (log ๋ง๊ณ ๊ทธ๋ฅ data๋ no-force์ผ๋๋ ๊ธฐ๋ก ์ํด๋ ๋จ)
์ด๋ค ์์ ์์ ์ค๋ฅ๊ฐ ๋๋ ๋ณต๊ตฌ ๊ฐ๋ฅํจ
Transaction Rollback and Cascading Rollback : ๊ณ๋จ์ ๋กค๋ฐฑ
์ค์ ๋ก๋ ๊ณ๋จ์ ๋กค๋ฐฑ ์ฌ์ฉใดใด
read๋ ๋ก๊ทธ์ ๊ธฐ๋ก์ํด๋ ๋จ
no undo/redo recovery based on deferred update : ์ง์ฐ ์ ๋ฐ์ดํธ
- ๋ถ๋ถ์ปค๋ฐ ๋ ๋๊น์ง ์ง์ฐ๋จ.
- no force, no steal
- no old value → undo ํ์์์ด์
- log record : [operation, trans-id, data, new value]
A typical deferred update protocol as follows
- ์ปค๋ฐ์ง์ ๊น์ง ๋์คํฌ์ DB ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ.
- ์ปค๋ฐํ ๋ ๊น์ง ๋ชจ๋ ๋ฒํผ๋ฅผ ๊ณ ์ ํด๋์ผํใ ๋ฏ๋ก(๋๋๋ฐฉ์ง ์ ์ฑ )
- ๋ชจ๋ Redo ์ ํ ๋ก๊ทธํญ๋ชฉ์ด ๋ก๊ทธ์ ๊ธฐ๋ก๋๊ณ ๋ก๊ทธ ๋ฒํผ๊ฐ ๋์คํฌ์ ๊ฐ์ ๊ธฐ๋ก๋ ๋๊น์ง ์ปค๋ฐ์ง์ ์ ๋์ฐฉX.
Recovery from Failure
์ปค๋ฐ ํ ์๋ฌ : Redo
์ปค๋ฐ ์ ์๋ฌ : no action (just restart)
Immediated update : force, steal : ์ฆ์ ์ ๋ฐ์ดํธ
uncommitted update
์ปค๋ฐ ์ ์ํ๋ ๋ณต๊ตฌ ํ์ ⇒ old value, new Value
Recovery from Failure
์ปค๋ฐ ํ ์๋ฌ : Redo
์ปค๋ฐ ์ ์๋ฌ : Undo (์คํ์ทจ์)
Checkpoint : ๋ณต๊ตฌ๊ฐ ํ์์๋ ์ง์
- ๋ก๊ทธ ๊ธฐ๋ก, ๋ฐ์ดํฐ ๊ธฐ๋ก ํ checkpoint
Taking a checkpoint consists of the following actinos :
- ์ ์ ์ค๋จ
- ๋ชจ๋ ๋ด์ฉ์ ๋์คํฌ๋ก force write
- ์ฒดํฌํฌ์ธํธ ๊ธฐ๋ก
- ์ฌ์๋
Shadow paging
page : ๊ณ ์ ๊ธธ์ด ๋์คํฌ ๋ธ๋ญ
DB partitioned into pages
current page table / shadow page table
shadow paging scheme : to update page i,
- read i
- update i
- write i to newly allocated page space
- change current page table
shadow page table is never changed over the duration of the transaction
if T is successful, current page table becomes the shadow page table
if T is failed, discard the current page table, ์๋์ฐ ํ ์ด๋ธ์ด current๊ฐ ๋จ
need no log
need no undo
Shadow paging ์ฅ๋จ์
์ฅ์ : log based์ ๋นํด์ ์ค๋ฒํค๋๊ฐ ์๊ณ , ๋ณต๊ตฌ๊ฐ ๋น ๋ฅด๊ณ , no undo/redo
๋จ์ : ๋ฐ์ดํฐ ์กฐ๊ฐํ, old page๋ฅผ ๋ณ๋๋ก ๋ชจ์
Recovery in Multidatabase systems
- multi DB transaction may require access to multiple db
- ์์์ฑ์ ์ ์งํ๊ธฐ ์ํด, two level recovery mechanism์ด ํ์ํจ
- global recovery manager (coordinator)
- local recovery managers
coordinator usually follows a protocol, Two-phase commit protocol. (2๋จ๊ณ ์ปค๋ฐ๊ท์ฝ)
2PLP-CC, 2PLP-R
2PCP
atomicity : T commits or aborts at all sites
participant : a site at which T has executed
assume (์ถ์ )
T is initiated at S(i) → TC(i) at S(i) is a transaction coordinator
( TC = transaction coordinator )
'๐ ์ ๊ณต ๊ณต๋ถ > DB๊ธฐ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] ์ ๊ณต์ sqld ์ํ ํ๊ธฐ/ ์ค๋น๋ฐฉ๋ฒ/ ๊ณต๋ถ (0) | 2023.01.16 |
---|---|
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด์ (0) | 2022.12.30 |
[DB] ๋์์ฑ ์ ์ด (0) | 2022.12.30 |
[DB] Transaction processing (0) | 2022.12.30 |
[DB] Indexing structures for files / ๋ฌผ๋ฆฌ์ DB์ค๊ณ (0) | 2022.12.30 |