Top Banner
An Experimental Analysis of Dierent Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich BTW 2017 Information Systems Group, Saarland University infosys.uni-saarland.de
83

An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Jul 13, 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: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

An Experimental Analysis of DifferentKey-Value Stores

andRelational Databases

David GembalczykFelix Martin Schuhknecht

Jens Dittrich

BTW 2017

Information Systems Group, Saarland Universityinfosys.uni-saarland.de

Page 2: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

An Experimental Analysis of DifferentKey-Value Stores

andRelational Databases

David GembalczykFelix Martin Schuhknecht

Jens Dittrich

BTW 2017

Information Systems Group, Saarland Universityinfosys.uni-saarland.de

How different are they really?

Page 3: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

2/20

Page 4: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

OLTP OLAP

2/20

Page 5: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Range QueriesPoint Queries

OLTP OLAP

2/20

Page 6: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Range QueriesPoint Queries

Single Entry All Entries

OLTP OLAP

2/20

Page 7: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Range QueriesPoint Queries

Single Entry All Entries

Relational DBs

OLTP OLAP

2/20

Page 8: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Range QueriesPoint Queries

Single Entry All Entries

Relational DBs Relational DBs

OLTP OLAP

2/20

Page 9: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Range QueriesPoint Queries

Single Entry All Entries

Relational DBs Relational DBs

OLTP OLAP

Key-Value Stores

2/20

Page 10: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Range QueriesPoint Queries

Single Entry All Entries

Relational DBs Relational DBs

OLTP OLAP

Key-Value Stores Key-Value Stores

2/20

Page 11: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Systems

3/20

Page 12: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Systems

3/20

Page 13: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Systems

3/20

Page 14: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Systems

3/20

Page 15: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Systems

3/20

Page 16: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

HyPer(Demo 0.5)

( )

Systems

3/20

Page 17: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Relational Systems

4/20

Page 18: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Relational Systems

Primary Key A B C

1 a1 b1 c1

2 a2 b2 c2

Relational Table

4/20

Page 19: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Relational Systems

Primary Key A B C

1 a1 b1 c1

2 a2 b2 c2

Relational Table

PostgreSQL, MonetDB,

Hyper

4/20

Page 20: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Relational Systems

Primary Key A B C

1 a1 b1 c1

2 a2 b2 c2

Relational Table

PostgreSQL, MonetDB,

Hyper

N_NATIONKEY(integer) N_NAME(char(25)) N_REGIONKEY(integer) N_COMMENT(varchar(152)))

123 “Germany” 5 “some comment”

... ... ... ...

TPC-H NATION

4/20

Page 21: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Redis

“any string”Key Value

“any string”

5/20

Page 22: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Redis

“any string”Key

[ “a”, “b”, “c”, “d”]Value

5/20

Page 23: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Redis

“any string”Key Value

{ ( 0.5, „a“ ), { ( 1.0, „c“ ), { ( 1.5, „b“ ), { ( 2.0, „d“ ) }

5/20

Page 24: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Redis

“any string”Key Value

[ “1” ➞ “a“ , [ “2” ➞ “b“, [ “3” ➞ “c“, [ “4” ➞ “d“ ]

5/20

Page 25: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Redis

“any string”Key Value

[ “1” ➞ “a“ , [ “2” ➞ “b“, [ “3” ➞ “c“, [ “4” ➞ “d“ ]

“NATION_123”Key

Value

[ N_NAME ➞ “Germany“ , [ N_REGIONKEY ➞ “5“, [ N_COMMENT ➞ “some comment“ ]

TPC-H NATION

5/20

Page 26: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

6/20

Page 27: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

6/20

Page 28: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

6/20

Page 29: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

Value

Bin

“binB”: “b”Bin

“sub”: {“binD”: “d”, “binE”: “e”}“any string 2”Key

6/20

Page 30: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

Column?

Value

Bin

“binB”: “b”Bin

“sub”: {“binD”: “d”, “binE”: “e”}“any string 2”Key

6/20

Page 31: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

Column?

Value

Bin

“binB”: “b”Bin

“sub”: {“binD”: “d”, “binE”: “e”}“any string 2”Key

6/20

Page 32: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

SetColumn?

Value

Bin

“binB”: “b”Bin

“sub”: {“binD”: “d”, “binE”: “e”}“any string 2”Key

6/20

Page 33: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

SetColumn?

Table?

Value

Bin

“binB”: “b”Bin

“sub”: {“binD”: “d”, “binE”: “e”}“any string 2”Key

6/20

Page 34: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Aerospike

“any string 1”Key

Value

Bin

“binA”: “a”Bin

“binB”: 42Bin

“binC”: [“a”, “b”, “c”]

SetColumn?

Table?

Value

Bin

“binB”: “b”Bin

“sub”: {“binD”: “d”, “binE”: “e”}“any string 2”Key

123Key

Value

Bin

N_NAME: “Germany”

Bin

N_REGIONKEY: 5

Bin

N_COMMENT: “some comment”

TPC-H NATIONSet

6/20

Page 35: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

PostgreSQL

7/20

Page 36: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

PostgreSQLHSTORE

Key Value

1

[ “A” ➞ “a1”, “B” ➞ “b1”, “C” ➞ “c1”]

7/20

Page 37: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

PostgreSQLHSTORE

Key Value

1

[ “A” ➞ “a1”, “B” ➞ “b1”, “C” ➞ “c1”]

JSONB

Key Value

1

{ “A”: “a1”, “B”: “b1”, “C”: “c1”}

2

{ “A”: “a2”, “B”: “b2”, “C”: “c2”, “sub”: { “D”: “d” “E”: “e” }}

7/20

Page 38: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

PostgreSQLHSTORE

Key Value

1

[ “A” ➞ “a1”, “B” ➞ “b1”, “C” ➞ “c1”]

JSONB

Key Value

1

{ “A”: “a1”, “B”: “b1”, “C”: “c1”}

2

{ “A”: “a2”, “B”: “b2”, “C”: “c2”, “sub”: { “D”: “d” “E”: “e” }}

Key Value

123

[ “N_NAME” ➞ “Germany”, “N_REGIONKEY” ➞ “5”, “N_COMMENT” ➞ “some comment”]

Key Value

123

[ “N_NAME”: “Germany”, “N_REGIONKEY”: 5, “N_COMMENT”: “some comment”]

7/20

Page 39: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Comparing Apples and Oranges

8/20

Page 40: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Comparing Apples and Oranges

vs

8/20

Page 41: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Comparing Apples and Oranges

vsRAM-disk

enlarge caches

warm-up run

8/20

Page 42: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Comparing Apples and Oranges

vsRAM-disk

enlarge caches

warm-up run

vs Custom Interface(s)

8/20

Page 43: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Comparing Apples and Oranges

vsRAM-disk

enlarge caches

warm-up run

vs Custom Interface(s)

8/20

Page 44: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Comparing Apples and Oranges

vsRAM-disk

enlarge caches

warm-up run

vs Custom Interface(s)

vs1 2 3 41

2

3

4

8/20

Page 45: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Experimental Setup

9/20

Page 46: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Experimental Setup

LINEITEMLINEITEMKEY

ORDERKEYPARTKEYSUPPKEY

LINENUMBERQUANTITY

EXTENDEDPRICEDISCOUNT

TAXRETURNFLAGLINESTATUSSHIPDATE

COMMITDATERECEIPTDATESHIPINSTRUCT

SHIPMODECOMMENT

PARTSUPPPARTSUPPKEY

PARTKEYSUPPKEYAVAILQTY

SUPPLYCOSTCOMMENT

modifiedTPC-H

9/20

Page 47: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Experimental Setup

LINEITEMLINEITEMKEY

ORDERKEYPARTKEYSUPPKEY

LINENUMBERQUANTITY

EXTENDEDPRICEDISCOUNT

TAXRETURNFLAGLINESTATUSSHIPDATE

COMMITDATERECEIPTDATESHIPINSTRUCT

SHIPMODECOMMENT

PARTSUPPPARTSUPPKEY

PARTKEYSUPPKEYAVAILQTY

SUPPLYCOSTCOMMENT

modifiedTPC-H

Scale Factor 1 9/20

Page 48: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Experimental Setup

LINEITEMLINEITEMKEY

ORDERKEYPARTKEYSUPPKEY

LINENUMBERQUANTITY

EXTENDEDPRICEDISCOUNT

TAXRETURNFLAGLINESTATUSSHIPDATE

COMMITDATERECEIPTDATESHIPINSTRUCT

SHIPMODECOMMENT

PARTSUPPPARTSUPPKEY

PARTKEYSUPPKEYAVAILQTY

SUPPLYCOSTCOMMENT

modifiedTPC-H

Scale Factor 1

warm-uprun

3 measurementruns

50,000 ops/run

9/20

Page 49: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Experimental Setup

LINEITEMLINEITEMKEY

ORDERKEYPARTKEYSUPPKEY

LINENUMBERQUANTITY

EXTENDEDPRICEDISCOUNT

TAXRETURNFLAGLINESTATUSSHIPDATE

COMMITDATERECEIPTDATESHIPINSTRUCT

SHIPMODECOMMENT

PARTSUPPPARTSUPPKEY

PARTKEYSUPPKEYAVAILQTY

SUPPLYCOSTCOMMENT

modifiedTPC-H

Scale Factor 1

warm-uprun

3 measurementruns

50,000 ops/run

Intel Xeon X5690 Intel Xeon X5690

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

3.47 GHz

96GBRAM

96GBRAM

9/20

Page 50: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Round-Trip Time

jdbc.executeQuery( "SELECT 1;" ); // Relational DBsredis.echo( "1" ); // Redisaerospike.exists( non_existing_key ); // Aerospike

0 2 4 6 8 10 12 14 16 18 20

100 000

200 000

300 000

400 000

500 000

Clients

Perform

ance

[Q/sec]

PostgreSQL MonetDBHyPer (Demo) AerospikeRedis

10/20

Page 51: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Round-Trip Time

jdbc.executeQuery( "SELECT 1;" ); // Relational DBsredis.echo( "1" ); // Redisaerospike.exists( non_existing_key ); // Aerospike

PostgreSQL MonetDBHyPer (Demo) AerospikeRedis

10/

0 2 4 6 8 10 12 14 16 18 20

100 000

200 000

300 000

400 000

500 000

Clients

Perform

ance

[Q/sec]

PostgreSQL MonetDBAerospike RedisNO-DB YCSBCUSTOM

PostgreSQL MonetDBAerospike RedisNO-DB YCSBCUSTOM

20

Page 52: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Modifying the Store

Page 53: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Inserts

Batch Size 1

50,000 Inserts into LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

Clients

Perform

ance

[ops/sec]

12/20

Page 54: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Inserts

Batch Size 1

50,000 Inserts into LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

Clients

Perform

ance

[ops/sec]

12/20

Page 55: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Inserts

Batch Size 1

50,000 Inserts into LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

Clients

Perform

ance

[ops/sec]

12/20

Page 56: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Inserts

Batch Size 1

50,000 Inserts into LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

Clients

Perform

ance

[ops/sec]

12/20

Page 57: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Inserts50,000 Inserts into LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Single Client

1 10 100 1 000100

1 000

10 000

100 000

Batch Size

Perform

ance

[ops/sec]

13/20

Page 58: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Inserts50,000 Inserts into LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Single Client

1 10 100 1 000100

1 000

10 000

100 000

Batch Size

Perform

ance

[ops/sec]

13/20

Page 59: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Deletes50,000 Deletes in LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Batch Size 1

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

400 000

Clients

Perform

ance

[ops/sec]

14/20

Page 60: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Deletes50,000 Deletes in LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Batch Size 1

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

400 000

Clients

Perform

ance

[ops/sec]

14/20

Page 61: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Deletes50,000 Deletes in LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Batch Size 1

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

400 000

Clients

Perform

ance

[ops/sec]

14/20

Page 62: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Reading from the Store

Page 63: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Primary Key50,000 Point-Queries in LINEITEM and ORDERS

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

400 000

Clients

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Batch Size 1

16/20

Page 64: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Primary Key50,000 Point-Queries in LINEITEM and ORDERS

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

400 000

Clients

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Batch Size 1

16/20

Page 65: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Primary Key50,000 Point-Queries in LINEITEM and ORDERS

0 2 4 6 8 10 12 14 16 18 200

100 000

200 000

300 000

400 000

Clients

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Batch Size 1

16/20

Page 66: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Primary Key50,000 Point-Queries in LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Single Client

1 10 100 1 000

10 000

100 000

Batch Size

Perform

ance

[ops/sec]

17/20

Page 67: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Primary Key50,000 Point-Queries in LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Single Client

1 10 100 1 000

10 000

100 000

Batch Size

Perform

ance

[ops/sec]

17/20

Page 68: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Primary Key50,000 Point-Queries in LINEITEM and ORDERS

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Single Client

1 10 100 1 000

10 000

100 000

Batch Size

Perform

ance

[ops/sec]

17/20

Page 69: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Secondary Index

1 10 100 1 0000

20 000

40 000

60 000

80 000

100 000

Range Size

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

SELECT MAX([ ps_supplycost | o_totalprice | l_discount ]) FROM [PARTSUPP | ORDERS | LINEITEM]

8 Clients

18/20

Page 70: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Secondary Index

1 10 100 1 0000

20 000

40 000

60 000

80 000

100 000

Range Size

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

SELECT MAX([ ps_supplycost | o_totalprice | l_discount ]) FROM [PARTSUPP | ORDERS | LINEITEM]

WHERE [ ps_partkey | o_custkey | l_orderkey ] = value if Range Size = 1

8 Clients

18/20

Page 71: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Secondary Index

1 10 100 1 0000

20 000

40 000

60 000

80 000

100 000

Range Size

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

SELECT MAX([ ps_supplycost | o_totalprice | l_discount ]) FROM [PARTSUPP | ORDERS | LINEITEM]

WHERE [ ps_partkey | o_custkey | l_orderkey ] = value if Range Size = 1

WHERE start <= [ ps_partkey | o_custkey | l_orderkey ] AND [ ps_partkey | o_custkey | l_orderkey ] <= end if Range Size ≥ 1

8 Clients

18/20

Page 72: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Queries on Secondary Index

1 10 100 1 0000

20 000

40 000

60 000

80 000

100 000

Range Size

Perform

ance

[ops/sec]

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

SELECT MAX([ ps_supplycost | o_totalprice | l_discount ]) FROM [PARTSUPP | ORDERS | LINEITEM]

WHERE [ ps_partkey | o_custkey | l_orderkey ] = value if Range Size = 1

WHERE start <= [ ps_partkey | o_custkey | l_orderkey ] AND [ ps_partkey | o_custkey | l_orderkey ] <= end if Range Size ≥ 1

8 Clients

18/20

Page 73: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Complex Analytical Queries

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Q01 Q060.01

0.1

1

10

100

TPC-H Query

Duration

[sec]

19/20

Page 74: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Complex Analytical Queries

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Q01 Q060.01

0.1

1

10

100

TPC-H Query

Duration

[sec]

19/20

Page 75: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Complex Analytical Queries

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Q01 Q060.01

0.1

1

10

100

TPC-H Query

Duration

[sec]

19/20

Page 76: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Complex Analytical Queries

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

PG-row PG-hstore PG-jsonb MonetDB HyPer (Demo)Aerospike Redis

Q01 Q060.01

0.1

1

10

100

TPC-H Query

Duration

[sec]

19/20

Page 77: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

20/20

Page 78: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

UDF support

20/20

Page 79: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

UDF support

secondary index support

20/20

Page 80: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

UDF support

secondary index support

build-in data structures

20/20

Page 81: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

UDF support

secondary index support

bulk operations

build-in data structures

20/20

Page 82: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

UDF support

secondary index support

bulk operations

build-in data structures

HSTORE

20/20

Page 83: An Experimental Analysis of Different Key-Value Stores and … · 2017-03-08 · Key-Value Stores and Relational Databases David Gembalczyk Felix Martin Schuhknecht Jens Dittrich

Conclusion

UDF support

secondary index support

bulk operations

build-in data structures

HSTOREJSONB

20/20