Top Banner
Redo Log Removal Mechanism for NVRAM Log Buffer Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20 Kyoung-Gu Woo, Heegyu Jin Advanced Software Research Laboratories SAIT, Samsung Electronics
24

Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Mar 27, 2020

Download

Documents

dariahiddleston
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: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Redo Log Removal Mechanism for NVRAM Log Buffer

Redo Log Removal Mechanism for NVRAM Log Buffer

2009/10/20Kyoung-Gu Woo, Heegyu JinAdvanced Software Research LaboratoriesSAIT, Samsung Electronics

Page 2: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

ContentsContents

BackgroundBasic PhilosophyProof of CorrectnessConclusion

Page 3: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

BackgroundBackground

Database Log– History of actions executed by DBMS – Contains REDO and UNDO information for every update – Typically written to log disk in a sequential manner

Log record – <TxnID, pageID, offset, length, old image, new image>

null T1 #1 10 3 000 111

000 000 000111 222 333

page #1

T3 #1 30 3 000 333

T2 #1 20 3 000 222

prevLSN TxnID pageID offset length Before img After imgLog page

Data page

Page 4: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

BackgroundBackground

Write Ahead Logging (WAL) Policy – Log records must be written to disk prior to its corresponding data

page– All log records should be written to disk when Transaction commits

WAL + steal/no-force combination– Updated pages can be written to disk before commit– Updated pages are not necessarily written to disk at commit time

The log write overhead is important to transaction performancesLogging performance becomes critical in MMDB

Group commit– Flushes log buffer when a group of transactions have committed– Reduce disk I/O increase throughput– At the cost of response time penalty to some transactions

Page 5: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

1 2 3

Introduction of NVRAM as the Log BufferIntroduction of NVRAM as the Log Buffer

Database system

Persistent Storage

Database buffer Log buffer(DRAM)

Data Disk Log Disk

Buffer

Log buffer

Log disk

Database system

Persistent Storage

Database buffer Log buffer(NVRAM)

Data Disk Log Disk

1 2 3

1 2 3

Txn1 Txn2 Txn3

4

1 2 3

1 2 3

Txn4

4

Buffer

Log buffer

Log disk

1 2 3

Txn1 Txn2 Txn3

4

Txn4

1 2 3 4

Page 6: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Benefits and Challenges of NVRAM Log BufferBenefits and Challenges of NVRAM Log Buffer

Benefits– Unnecessary writes

• Usually, the amount of log produced by on OLTP transaction is very small

• The portion of unnecessary log writes = (A+C)/(A+B+C)Byte addressability of NVRAM log buffer gives you better response time

– Interesting question: What if size (B) = page size ?

Problem– NVRAM log buffer is expected to be smaller in its capacity than log

disks for a while– Periodic log flush from NVRAM log buffer to disk can be a new

bottleneck point when the transaction rate is very high

(A) Already written to disk

(C) Empty region

(B) New log record

Page 7: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Possible Solutions against New Bottleneck with NVRAM log BufferPossible Solutions against New Bottleneck with NVRAM log Buffer

More frequent flushing to log disk (Background process)– Sequential write speed is the key

• Works for PRAM (problem solved!!!)• Does not work for MRAM or FeRAM (other solutions are needed)

Deploying parallelism – Use log disk array– Works good but at additional cost

Reduce the amount of log flushed to log disk from log buffer – Remove unnecessary log records in NVRAM

• Undo Log Removal [Dewit84]– Remove undo log records after the transaction is committed– Already proposed for main memory DBMS

• How about Redo Log Removal ??– We are going to talk about this now !!!

Page 8: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

ContentsContents

BackgroundBasic PhilosophyProof of CorrectnessConclusion

Page 9: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

u u

Log Removal in Log Buffer Log Removal in Log Buffer

Database system

Persistent Storage

Page buffer Log buffer (DRAM)

Data Disk Log Disk

Undo Log Removal

u u u u u uu u u u u u

r r r r r r

Database system

Persistent Storage

Page buffer Log buffer (NVRAM)

Data Disk Log Disk

u u

Redo/Undo Log Removal

u

u

r

r

Undo log of committed transaction

Undo log of uncommitted transaction

Redo log of flushed page

Redo log of dirty page

r r r r r rr r r r r r

u u u u u uu u u u u u

r r r r r rr r r r r r r r r r r r

r r r r r r

Page 10: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Redo Log Removal?Redo Log Removal?

What is Redo log for?– Basically Redo log is used to preserve information in dirty data

pages in buffer• Unlike Undo log, Redo log is only used in failure recovery

– Once a dirty data page is forced to disk, the page’s corresponding redo logs have no use

• If that simple, why didn’t they try it in MMDB?

Database system

Persistent Storage

Database buffer Log buffer(DRAM)

Data Disk Log Disk

Typical MMDB: Except checkpoint, data pages are not written to disk

Database system

Persistent Storage

Data Disk Log Disk

DRDB: data pages are written to disk during normal processing

checkpoint Normal processing

Database buffer Log buffer(DRAM)

Page 11: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Redo Log Removal: Base Philosophy(1/2)Redo Log Removal: Base Philosophy(1/2)

Redo Log Removal– When a data page is flushed to disk, redo log records for the data

page are removed.

Page buffer

Disk

write

Redo log record

p2

P1 P2 P3 P4 P5 P6

Page 12: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Redo Log Removal: Base Philosophy(2/2)Redo Log Removal: Base Philosophy(2/2)

Log Records are stored in NVRAM not in a sequential manner– Log records are connected by pointers– for the purpose of removing log record efficiently

p1 p2 p3

l1

l2

Page buffer

NVRAM Log buffer

l3

l4

l5

l6

l7

l8

l9

Time line

Page 13: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Redo Log Removal: Example CaseRedo Log Removal: Example Case

Before redo logs are removed After redo logs are removed

Page 14: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

ContentsContents

BackgroundBasic PhilosophyProof of CorrectnessConclusion

Page 15: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Proof of Concept: Two Key Issues in Redo Log RemovalProof of Concept: Two Key Issues in Redo Log Removal

Unordered LSN– LSN is usually the start address of log records in physical layout

• i.e., physical LSN is commonly used

– In NVRAM log buffer, the start address of log record is random• i.e., physical LSN is unordered in NVRAM log buffer

Log duplication – Crash can occur during periodic log flush– As a result, same log records can be existing both in log buffer and

disk– The problem is to stitch two different log sequences seamlessly

Page 16: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Unordered LSN issue Unordered LSN issue

NVRAM log buffer

l1

l2

l3

l4

l5

l6

l7

address

#1000

#1600

l8

l9

Page buffer

#1300

#1300

page#1

2 3 4

#1100#1500

page#2

1 5 6

8 9

#1300

page#1

2 3 4

#1200

#1400

#1500

Disk

In failure recovery, a data page’s LSN(pageLSN) is compared to log records’ LSNs

– When a Log record’s LSN is larger than the pageLSN, redo is required

However, Address of log record in NVRAM doesn’t follow chronological orders!

Page 17: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Log duplication issue Log duplication issue

System crashes before it removes duplicate log recordsThe junction point between log buffer and log disk is lost

– Physical LSN(Log Sequence Number) is used in Disk– Random Memory Address is used to identify log records in NVRAM

Log disk

NVRAM log buffer

Redo log by Page(i)Redo log by Page(j)

#00 #10 #20 #30 #40 #50

Which is the next log?

Page 18: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Two Issues, One SolutionTwo Issues, One Solution

Let’s use Logical LSN than Physical LSN– Physical LSN in Disk is increasing monotonically– We embed a logically increasing number inside each log record

So Simple!! In fact, Too Simple…

Page 19: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Unordered Physical LSN Ordered Logical LSNUnordered Physical LSN Ordered Logical LSN

Same Logic with one more comparison(physical LSN) works

NVRAM log bufferaddress

#1000

#1600

Page buffer

103

#1300

page#1

2 3 4

#1100100

page#2

1 5 6

8 9

103

page#1

2 3 4

#1200

#1400

#1500

Disk

l1100

l2101

l3102

l4103

l5104

l6105

l7106

l8107

l9108

Page 20: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Duplicated Log Identified by Logical LSNDuplicated Log Identified by Logical LSN

101 102 103 104 105 106 107 108

Log disk

NVRAM log buffer

Redo log by Page(i)Redo log by Page(j)

101 102 103 104 105

#00 #10 #20 #30 #40 #50

Page 21: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

ContentsContents

BackgroundBasic IdeaProof of CorrectnessConclusion

Page 22: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Conclusion Conclusion

We proposed a redo log removal mechanism – It is not a complete research yet– But, it seems to be working– And, we think that the performance of NVRAM log buffer will be

enhanced for OLTP applications

Limitations for now– Correctness is not proven for record-level locking,,, sadly

• Which is commonly used in heavy OLTP systems

– Overhead & Gain is not experimentally proven• Is periodic flushing really a bottleneck in real applications?• Does memory management overhead small enough?

– Is disk speed slow enough? (especially sequential write throughput)

Page 23: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

AppendixAppendix

Page 24: Redo Log Removal Mechanism for NVRAM Log Buffer · Redo Log Removal Mechanism for NVRAM Log Buffer 2009/10/20. Kyoung-Gu Woo, Heegyu Jin. Advanced Software Research Laboratories.

Reference Reference

[DeWitt84] D. J. DeWitt, R. H. Katz, F. Olken, L. D. Shapiro,M. R. Stonebraker, and D. Wood. “Implementation Techniques for Main Memory Database Systems.” In Proceedings of the 1984 ACM SIGMOD International Conference on anagement of Data, pages 1–8, June 1984