19

Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers
Page 2: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

view

view

Why is Materialize?

OLTPmoderate OLTP load

view

view

view

increased

DenormalizationCaches

Caches

CachesOssification

Page 3: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

What is Materialize?“incremental view maintenance offload”

Incremental View Maintenance Read-only

ChangeLog

SQL ClientSQL ClientSQL Client

Control plane

Data plane

ChangeLogs

ChangeLogs

ChangeLogs

CREATE VIEW v AS ...

SELECT COUNT(*) FROM ...

SELECT COUNT(*) FROM v;

Page 4: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

The Materialize Stack

Timely Dataflow

Differential Dataflow

Indices AST Render

MaterializePlanning

Page 5: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Timely Dataflow

a dataflow

op op

op

op

data exchange

another dataflow

op

op

yet another dataflow

} workers

yet another dataflowyet another dataflowyet another dataflow

Page 6: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

GroupJoinMap

MapInput

Streams of “updates”: (data, time, diff)

e.g. String

e.g. u64

e.g. i64Operators produce “correct” output stream.

Page 7: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

GroupJoinMap

MapInput

Arrange : Stream -> Index + Stream(by key) (of indices)

Advanced Topic 1: Arrangements

Page 8: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Arrange

Differential Dataflow

a dataflow

GroupJoinArrange

ArrangeInput

Advanced Topic 1: Arrangements

: Stream -> Index + Stream(by key) (of indices)

Page 9: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Arrange

Differential Dataflow

a dataflow

GroupJoinArrangeInput

Advanced Topic 1: Arrangements

: Stream -> Index + Stream(by key) (of indices)

Group

Page 10: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

GroupJoinArrange

Advanced Topic 1: Arrangements

Group

Input

Page 11: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

GroupJoinArrange

Advanced Topic 1: Arrangements

Group

another dataflowImport Group

yet another dataflowImport Distinct

yet another dataflowImport Count

Input

Page 12: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

Group

JoinInput

Input

Advanced Topic 2: Delta Queries

JoinInput

materialization

Page 13: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

Group

dJoinInput

Input

Advanced Topic 2: Delta Queries

dJoinInput

Page 14: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

Group

Advanced Topic 2: Delta Queries

dJoinInput

Input Input

dJoin

dJoinInput

Input Input

dJoin

dJoinInput

Input Input

dJoin

Page 15: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

Group

dJoinInput

Input

Advanced Topic 2: Delta Queries

Input

dJoin

dJoinInput

Input Input

dJoin

dJoinInput

Input Input

dJoin

Page 16: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

Differential Dataflow

a dataflow

Advanced Topic 3: Iteration

Works great!

Page 17: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

The Materialize Stack

Timely

Differential

Indices AST Render

MaterializePlanning

Page 18: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

The Materialize Stack

Indices AST Render

MaterializePlanning

Differential

Timely

Page 19: Why is Materialize? - GitHub Pages · 2019. 9. 10. · Planning Materialize. Timely Dataflow a dataflow op op op op data exchange another dataflow op op yet another dataflow}workers

.io@frankmcsherry