CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the...

26
A Benchmarking Story CockroachDB: From OLTP to HTAP presented by Arjun Narayan

Transcript of CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the...

Page 1: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

ABenchmarkingStory

CockroachDB:FromOLTPtoHTAP

presentedby ArjunNarayan

Page 2: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

WARNING!• Opinionatedspeculationahead

• Here’swhatI wantCockroachDBtolooklike

• Notnecessarilywhatwillhappen

Page 3: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

HTAP: What is it?Here’s To A Perspective

Page 4: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Databasestoday(simplified)

OLTP Database

OLAP Warehouse

ETL

TPC-C

TPC-H

Page 5: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Databasestomorrow(simplified)

HTAP Database

TPC-C

TPC-H

Page 6: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Dataarchitecturestoday(reality)

OLTP

OLTP

OLTP

OLTP

KAFKA

Hadoop

Vertica

Storm

Samza

Custom denormalizationmicroservices

Ad-hocData Science

Reporting

Realtime feeds

Dashboards

Memcache

Page 7: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Avisionfordataarchitecturestomorrow

Cockroach Zone: OLTP

Cockroach Zone:Incrementally Updated

Materialized Views

Ad-hocData Science

Reporting

Realtime feeds

Dashboards

Cache

Page 8: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

HTAP: How do we benchmark it?You are what you measure

Page 9: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

CockroachDB Architecture in 60 secondsScale out SQL

Page 10: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

ArchitectureOverview

Raft

Fully featured SQL API

Distributed Query Execution

Node 1

Node 2

Node 3

Replicas

Page 11: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

TheCockroachDBKVLayer

Page 12: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

UsingClocksforFastReads

Node 1

Lease

Node 2

Lease

Node 3

Lease

Page 13: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

DistributedQueryExecutioninCockroachDB

Page 14: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Building CockroachDB

Page 15: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

BuildingCockroachDB:AnOrderofPriorities

Correctness •Jepsen testing

Stability •Chaos testing

Performance •Benchmarking

Page 16: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

BuildingCockroachDB:AnOrderofPriorities

Scale-outOLTP

• Where we are today

AcceptableOLAP

• Where we are keeping an eye on

HTAP • The distant future (the year 2000)

Page 17: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

CockroachDB: An HTAP vision

Page 18: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

HTAP:Astrawman

OLTP Database

OLAP Warehouse

ETL

TPC-C

TPC-H

HTAP Database

TPC-C

TPC-H

Page 19: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Dataarchitecturestoday

OLTP

OLTP

OLTP

OLTP

KAFKA

Hadoop

Vertica

Storm

Samza

Custom denormalizationmicroservices

Ad-hocData Science

Reporting

Realtime feeds

Dashboards

Memcache

Page 20: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

HTAP:Desiderata

• Computeanalyticsqueriesandkeepresultsup-to-date

• ResourceisolationforOLTPwork

Page 21: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Dataarchitecturestomorrow

KAFKA

Cockroach Zone: OLTP

Hadoop

Vertica

Storm

Samza

Ad-hocData Science

Reporting

Realtime feeds

Dashboards

Memcache

Page 22: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

IncrementallyUpdatedMaterializedViews

• Real-timeChangefeedsfromOLTPreplicas

• DifferentialDataflowforincrementalcomputationofallSQLqueries

• BuiltrightintotheRDBMS,noseparateETLstep

• CockroachtimestampsindataflowgivesserializabletransactionsthatspanOLTP+OLAP

• “ReadyourOLTPwritesinOLAPreads”transactionalguarantees

• SeeNaiad(SOSP2013),DifferentialDataflow(CIDR2013),FrankMcSherry’s Blog(GitHub)

Page 23: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Dataarchitecturesthedayafter

Cockroach Zone: OLTP

Cockroach Zone:Incrementally Updated

Materialized Views

Ad-hocData Science

Reporting

Realtime feeds

Dashboards

Memcache

Page 24: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

BenchmarkingHTAP:Whatnottodo

• Don’tjustrunTPC-C+TPC-Honthesamesystem

• Why?MaterializedviewsbreakTPC-H

• It’snotjustaboutrunningad-hocTPC-Hqueries

• HTAPdoesn’tmatterifyoucan’tguaranteepredictableTPC-Cperformance

Page 25: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Benchmarkingmaterializedviews

• Howlongdoesittaketocomputeincrementalreports?

• Howlongdoesittaketocomputead-hocqueries?

• Howlongdoesittaketobuildamaterializedviewfromscratch?

• HowlongdoesittaketopropagateOLTPchanges?

• HowmuchoverheaddoweimposeontheOLTPsystem?

Page 26: CockroachDB: From OLTP to HTAP · 2017-10-27 · keeping an eye on HTAP •The distant future (the year 2000) @cockroachdb CockroachDB: An HTAP vision. @cockroachdb ... •Real-time

@cockroachdb

Questions?