scalable logging algorithm for in-memory database … logging algorithm for in-memory database...

33
Scalable Logging Algorithm for in-Memory Database Systems Henry Liu, Justin Kaashoek, Siye Zhu

Upload: vuongduong

Post on 10-Jun-2018

264 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

Scalable Logging Algorithm for in-Memory Database Systems

Henry Liu, Justin Kaashoek, Siye Zhu

Page 2: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 3: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 4: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 5: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 6: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 7: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 8: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 9: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 10: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

S F

S F

S F

S F

S F

S F

Page 11: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

● With serial logging, each transaction needs an LSN from the Global LSN

● Quickly becomes bottleneck with large number of transactions

Global LSNTxn

Global LSN

Txn

Txn

Txn

Txn

Txn

LSN

Txn

Txn

Txn

Page 12: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

Batch logging provides one solution to this problem by having multiple loggers with multiple local LSNs instead of one global LSN. This removes the bottleneck

Global LSN

Txn

Txn

Txn

Txn

Txn

LSN

LSN+1

LSN+2

LSN+3

LSN+4

Txn

Txn

Txn

Txn

Txn

Local LSN 3

Local LSN 4

Local LSN 5

Local LSN 2

Local LSN 1LSN

LSN

LSN

LSN

LSN

Serial Logging Batch Logging

Page 13: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

● Assume dependencies between loggers

● Sync before returning to user● Our implementation: Flush all

loggers when one becomes full● Drawback: high latency

Batch Logging

time

Log 1 Log 2 Log 3

Page 14: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3

Transaction TimeOperations

time

Page 15: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3

Transaction TimeOperationsLog TimeWait TimeCommit

time

Page 16: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3

time

Page 17: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Read(A)

Logging

Txn 2

Read(A)

Write(B)

Logging

Independent Logging?

Page 18: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Read(A)

Logging

Txn 2

Read(A)

Write(B)

Logging

YESIndependent Logging?

Page 19: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Write(A)

Logging

Txn 2

Read(A)

Write(B)

Logging

YESIndependent Logging?

Page 20: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Write(A)

Logging

Txn 2

Read(A)

Write(B)

Logging

YESIndependent Logging?

No

Page 21: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Write(A)

Logging

Txn 2

Write(A)

Write(B)

Logging

YESIndependent Logging?

No

Page 22: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Write(A)

Logging

Txn 2

Write(A)

Write(B)

Logging

YESIndependent Logging?

NoNo

Page 23: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Read(A)

Logging

Txn 2

Write(A)

Write(B)

Logging

YESIndependent Logging?

NoNo

Page 24: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

• No dependency

• RAW (Read After Write)

• WAW (Write After Write)

• WAR (Write After Read)

Txn 1

Read(A)

Logging

Txn 2

Write(A)

Write(B)

Logging

YESIndependent Logging?

NoNo

YES

Page 25: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

LSN Txn ID Data Tuple Dependency info

Logger 1

Wait Buffer 1

Logger 2

Wait Buffer 2

Parallel Logger

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3

Transactionstim

e

Page 26: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

LSN Txn ID Data Tuple Dependency info

Logger 1

1 1 C [0, 0]

Wait Buffer 1

11 3A

[1,1]B

Logger 2

1 2 B [0,0]

Wait Buffer 2

Parallel Logger

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3

Transactionstim

e

Page 27: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

LSN Txn ID Data Tuple Dependency info

Logger 1

1 1 C [0, 0]

11 3A

[1,1]B

Wait Buffer 1

Logger 2

1 2 B [0,0]

Wait Buffer 2

Parallel Logger

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Txn 1Txn 2

Txn 3

Transactionstim

e

Page 28: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)Write(A)

Write(B)

Read(C)

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)

Write(A)

Write(B)

Read(C)

Txn 1 Txn 2 Txn 3

Read(A)

Read(B)

Write(C)

Read(A)

Write(B)

Write(A)

Write(B)

Read(C)

Txn 1 Txn 2 Txn 3 Txn 1 Txn 2 Txn 3

time

Page 29: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 30: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 31: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)

○○○

○○○○

Page 32: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)
Page 33: Scalable Logging Algorithm for in-Memory Database … Logging Algorithm for in-Memory Database Systems ... Logger 1 Wait Buffer 1 Logger 2 Wait Buffer 2 Parallel Logger Read(A) Read(B)