Top Banner
Logging and ARIES
31

Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Dec 14, 2015

Download

Documents

Shreya Blease
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Logging and ARIES

Page 2: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

ARIES Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 1 A3 UP 1 2 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

1

2

3

WA,B

CP

WC

WD

WB

WA

WE

CRASH

Flush

Page 3: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

ARIES Data Structures

12

3

WA,B

CP

WC

WD

WB

WA

WE

CRASH

Flush

lastLSN TID

1 1

xactionTablepgNo recLSN

dirtyPgTable

xactionTable

dirtyPgTable

Checkpoint

Page pageLSN

A ?

B ?

C ?

D ?

E ?

Disk

lastLSN TID

2 1

lastLSN TID

3 1

lastLSN TID

3 1

5 3

lastLSN TID

13 3

pgNo recLSN

A 2

B 3

pgNo recLSN

A 2

B 3

C 6

Page pageLSN

A 2

B 3

C 6

D ?

E ?

pgNo recLSNpgNo recLSN

D 8

pgNo recLSN

D 8

B 10

pgNo recLSN

D 8

B 10

A 11

pgNo recLSN

D 8

B 10

A 11

E 13

xactionTable 3 - 1

dirtyPgTable A - 2, B - 3

Page 4: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Crash Recovery Phases

1. Analysis– Find earliest useful log record– Rebuild xactionTable and dirtyPgTable– Determine winners & losers

2. Redo– Redo all updates, even from losers (“repeat history”)– Why?

3. Undo– Undo Losers

Page 5: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

1 SOT 12 UP 1 1 A3 UP 1 2 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

Page 6: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

3 1

pgNo recLSN

A 2

B 3

Page pageLSN

A 2

B 3

C 6

D ?

E ?

xactionTable dirtyPgTableDisk

Page 7: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

3 1

5 3

pgNo recLSN

A 2

B 3

Page pageLSN

A 2

B 3

C 6

D ?

E ?

xactionTable dirtyPgTableDisk

Page 8: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

3 1

5 3

pgNo recLSN

A 2

B 3

C 6

Page pageLSN

A 2

B 3

C 6

D ?

E ?

xactionTable dirtyPgTableDisk

Page 9: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

3 1

5 3

7 2

pgNo recLSN

A 2

B 3

C 6

Page pageLSN

A 2

B 3

C 6

D ?

E ?

xactionTable dirtyPgTableDisk

Page 10: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

3 1

5 3

7 2

pgNo recLSN

A 2

B 3

C 6

D 8

Page pageLSN

A 2

B 3

C 6

D ?

E ?

xactionTable dirtyPgTableDisk

Page 11: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

AnalysisLSN Type Tid PrevLSN Data

5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 610 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

13 3

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Page pageLSN

A 2

B 3

C 6

D ?

E ?

xactionTabledirtyPgTable Disk

Not the same as just beforecrash (note disk state)

Page 12: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo

• Where to begin?– Checkpoint?

– Min(recLSN)!

• What to REDO?

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

dirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 13: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 14: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 15: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 16: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 17: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 18: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Page 19: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Redo Example

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 2 A3 UP 1 3 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

pgNo recLSN

A 2

B 3

C 6

D 8

E 13

Redo UNLESS• Page is not in dirtyPgTable• If LSN < recLSN• If LSN <= pageLSN

DirtyPgTable

Page pageLSN

A 2

B 3

C 6

D ?

E ?

Disk

Buffer/disk pages same as pre-crash

Page 20: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Undo

• Walk backwards, following prevLSNs to UNDO losers

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 1 A3 UP 1 2 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

13 3

xactionTable

Page 21: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Undo

• Walk backwards, following prevLSNs to UNDO losers

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 1 A3 UP 1 2 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

13 3

xactionTable

Page 22: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Undo

• Walk backwards, following prevLSNs to UNDO losers

LSN Type Tid PrevLSN Data1 SOT 12 UP 1 1 A3 UP 1 2 B4 CP5 SOT 36 UP 1 3 C7 SOT 28 UP 2 7 D9 EOT 1 6

10 UP 3 5 B11 UP 2 8 A12 EOT 2 1113 UP 3 10 E

lastLSN TID

13 3

xactionTable

Page 23: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

What does UNDO do?

• Why is it safe to undo an op from middle of log?

• What if the operation split a B+Tree block?

Page 24: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

Crash during UNDO phase?

– Example:• T1 starts

• T1 deletes tuple, modifies heapfile, B+Tree index

• DB writes all dirty pages to disk

• checkpoint

• crash

– Nothing to redo– Undo phase starts to modify heapfile/B+Tree, writes

some pages to disk, crash again.– Will the 2nd recovery work correctly?

Page 25: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

UNDO with CLRLSN Type Tid PrevLSN Data

5 SOT 3

6 UP 1 3 C

7 SOT 2

8 UP 2 7 D

9 EOT 1 6

10 UP 3 5 B

11 UP 2 8 A

12 EOT 2 11

13 UP 3 10 E

Losers: 3

Page 26: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

UNDO with CLRLSN Type Tid PrevLSN Data

5 SOT 3

6 UP 1 3 C

7 SOT 2

8 UP 2 7 D

9 EOT 1 6

10 UP 3 5 B

11 UP 2 8 A

12 EOT 2 11

13 UP 3 10 E

Page 27: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

UNDO with CLRLSN Type Tid PrevLSN Data

5 SOT 3

6 UP 1 3 C

7 SOT 2

8 UP 2 7 D

9 EOT 1 6

10 UP 3 5 B

11 UP 2 8 A

12 EOT 2 11

13 UP 3 10 E

14 CLR 3 E

Page 28: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

UNDO with CLRLSN Type Tid PrevLSN Data

5 SOT 3

6 UP 1 3 C

7 SOT 2

8 UP 2 7 D

9 EOT 1 6

10 UP 3 5 B

11 UP 2 8 A

12 EOT 2 11

13 UP 3 10 E

14 CLR 3 10 E

Page 29: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

UNDO with CLRLSN Type Tid PrevLSN Data

5 SOT 3

6 UP 1 3 C

7 SOT 2

8 UP 2 7 D

9 EOT 1 6

10 UP 3 5 B

11 UP 2 8 A

12 EOT 2 11

13 UP 3 10 E

14 CLR 3 10 E

15 CLR 3 5 B

Page 30: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

UNDO with CLRLSN Type Tid PrevLSN Data

5 SOT 3

6 UP 1 3 C

7 SOT 2

8 UP 2 7 D

9 EOT 1 6

10 UP 3 5 B

11 UP 2 8 A

12 EOT 2 11

13 UP 3 10 E

14 CLR 3 10 E

15 CLR 3 5 B

16 EOT 3 -

Page 31: Logging and ARIES. ARIES Example LSNTypeTidPrevLSNData 1SOT1 2UP11A 3 12B 4CP 5SOT3 6UP13C 7SOT2 8UP27D 9EOT16 10UP35B 11UP28A 12EOT211 13UP310E 1 2 3.

REDO with CLR

• REDO CLRs on crash recovery– Just like redo of ordinary update– CLR is the physical redo version of the logical undo– Each CLR has an entire undo’s worth of redo info

• Thus redo w/ CLRs yields action consistency

– After processing CLR, update lastLSN field in xactionTable to point to prevLSN of CLR

• Allows UNDO to start from the right place