yahoo! cloud serving benchmark · system setup and tuning assistance from members of the cassandra...

19
1 Yahoo! Cloud Serving Benchmark Overview and results – March 31, 2010 Brian F. Cooper [email protected] Joint work with Adam Silberstein, Erwin Tam, Raghu Ramakrishnan and Russell Sears System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team

Upload: others

Post on 06-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

1

Yahoo! Cloud Serving Benchmark

Overview and results – March 31, 2010

Brian F. Cooper

[email protected]

Joint work with Adam Silberstein, Erwin Tam, Raghu Ramakrishnan and Russell Sears

System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team

Page 2: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

2

Versions of this deck

•  V4.1 – Original set of results from benchmark

•  V4.2 – added Cassandra 0.5 versus 0.4.2 comparison, Cassandra range query results, and vary scan size results

•  V4.3 – Added more scalability data points, and Sherpa elasticity data

•  V4.4 – Complete results from final YCSB paper

Page 3: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

3

Motivation •  There are many “cloud DB” and “nosql” systems out there

–  Sherpa/PNUTS –  BigTable

•  HBase, Hypertable, HTable –  Megastore –  Azure –  Cassandra –  Amazon Web Services

•  S3, SimpleDB, EBS –  CouchDB –  Voldemort –  Dynomite –  Etc: Tokyo, Redis, MongoDB

•  How do they compare? –  Feature tradeoffs –  Performance tradeoffs –  Not clear!

Page 4: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

4

Goal

•  Implement a standard benchmark –  Evaluate different systems on common workloads –  Focus on performance and scale out

•  Future additions – availability, replication

•  Artifacts –  Open source workload generator –  Experimental study comparing several systems

Page 5: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

5

Benchmark tool •  Java application

–  Many systems have Java APIs –  Other systems via HTTP/REST, JNI or some other solution

Workload parameter file •  R/W mix •  Record size •  Data set •  …

Command-line parameters •  DB to use •  Target throughput •  Number of threads •  …

YCSB client

DB

clie

nt

Client threads

Stats

Workload executor C

loud

DB

Extensible: plug in new clients Extensible: define new workloads

Page 6: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

6

Workloads •  Workload – particular combination of workload parameters, defining

one workload –  Defines read/write mix, request distribution, record size, … –  Two ways to define workloads:

•  Adjust parameters to an existing workload (via properties file) •  Define a new kind of workload (by writing Java code)

•  Experiment – running a particular workload on a particular hardware setup to produce a single graph for 1 or N systems –  Example – vary throughput and measure latency while running a

workload against Cassandra and HBase

•  Workload package – A collection of related workloads –  Example: CoreWorkload – a set of basic read/write workloads

Page 7: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

7

Benchmark tiers •  Tier 1 – Performance

–  For constant hardware, increase offered throughput until saturation

–  Measure resulting latency/throughput curve –  “Sizeup” in Wisconsin benchmark terminology

•  Tier 2 – Scalability –  Scaleup – Increase hardware, data size and workload

proportionally. Measure latency; should be constant

–  Elastic speedup – Run workload against N servers; while workload is running att N+1th server; measure timeseries of latencies (should drop after adding server)

Page 8: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

8

Test setup •  Setup

–  Six server-class machines •  8 cores (2 x quadcore) 2.5 GHz CPUs, 8 GB RAM, 6 x 146GB 15K RPM SAS drives in RAID 1+0,

Gigabit ethernet, RHEL 4 –  Plus extra machines for clients, routers, controllers, etc. –  Cassandra 0.5.0 (0.6.0-beta2 for range queries) –  HBase 0.20.3 –  MySQL 5.1.32 organized into a sharded configuration –  Sherpa 1.8 with MySQL 5.1.24 –  No replication; force updates to disk (except HBase, which primarily commits to memory)

•  Workloads –  120 million 1 KB records = 20 GB per server –  Reads retrieve whole record; updates write a single field –  100 or more client threads

•  Caveats –  Write performance would be improved for Sherpa, sharded MySQL and Cassandra with a

dedicated log disk –  We tuned each system as well as we knew how, with assistance from the teams of

developers

Page 9: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

9

Workload A – Update heavy •  50/50 Read/update

Comment: Cassandra is optimized for writes, and achieves higher throughput and lower latency. Sherpa and MySQL achieve roughly comparable performance, as both are limited by MySQL’s capabilities. HBase has good write latency, because of commits to memory, and somewhat higher read latency, because of the need to reconstruct records.

0

10

20

30

40

50

60

70

0 5000 10000 15000

Aver

age

read

late

ncy

(ms)

Throughput (ops/sec)

Workload A - Read latency

Cassandra Hbase Sherpa MySQL

0

10

20

30

40

50

60

70

80

0 5000 10000 15000 U

pdat

e la

tenc

y (m

s)

Throughput (ops/sec)

Workload A - Update latency

Cassandra Hbase Sherpa MySQL

Page 10: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

10

•  95/5 Read/update

Comment: Sherpa does very well here, with better read latency – only one lookup into a B-tree is needed for reads, unlike log-structured systems where records must be reconstructed. Cassandra also performs well, matching Sherpa until high throughputs. HBase does well also, although read time is higher.

Workload B – Read heavy

0 2 4 6 8

10 12 14 16 18 20

0 2000 4000 6000 8000 10000

Aver

age

read

late

ncy

(ms)

Throughput (operations/sec)

Workload B - Read latency

Cassandra HBase Sherpa MySQL

0

5

10

15

20

25

30

35

40

0 2000 4000 6000 8000 10000 Av

erag

e up

date

late

ncy

(ms)

Throughput (operations/sec)

Workload B - Update latency

Cassandra Hbase Sherpa MySQL

Page 11: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

11

Workload E – short scans •  Scans of 1-100 records of size 1KB

Comment: HBase and Sherpa are roughly equivalent for latency and peak throughput, even though HBase is “meant” for scans. Cassandra’s performance is poor, but the development team notes that many optimizations still need to be done.

0

20

40

60

80

100

120

0 200 400 600 800 1000 1200 1400 1600

Aver

age

scan

late

ncy

(ms)

Throughput (operations/sec)

Workload E - Scan latency

Hbase Sherpa Cassandra

Page 12: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

12

Workload E – range size •  Vary size of range scans

Comment: For small ranges, queries are similar to random lookups; Sherpa is efficient for random lookups and does well. As range increases, HBase begins to perform better since it is optimized for large scans

Page 13: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

13

Scale-up •  Read heavy workload with varying hardware

Comment: Sherpa and Casandra scale well, with flat latency as system size increases. HBase is very unstable; 3 servers or less performs very poorly.

Page 14: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

14

Elasticity •  Run a read-heavy workload on 2 servers; add a 4th, then

5th, then 6th server.

Comment: Sherpa shows variance in response time as tablets are moving, but after the data moves, it settles into an average that is faster than before the sixth server was added.

0

20

40

60

80

100

120

140

0 20 40 60 80 100 120 140

Rea

d la

tenc

y (m

s)

Duration of test (min)

Sherpa Elasticity - 5th to 6th server

Page 15: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

15

Elasticity •  Run a read-heavy workload on 2 servers; add a 4th, then

5th, then 6th server.

Comment: Cassandra shows lots of latency variance as it moves data to the new server, and takes multiple hours to stabilize

0

100

200

300

400

500

600

700

800

0 50 100 150 200 250 300 350

Rea

d la

tenc

y (m

s)

Duration of test (min)

Cassandra Elasticity – 5th to 6th server

Page 16: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

16

Elasticity •  Run a read-heavy workload on 2 servers; add a 4th, then

5th, then 6th server.

Comment: HBase shows a small latency bump as the cluster reconfigures. But data is not moved to the new server until a compaction is performed (not shown in the graph)

0

50

100

150

200

250

0 5 10 15 20 25 30

Rea

d la

tenc

y (m

s)

Test duration (min)

HBase Elasticity - 5th to 6th Server

Page 17: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

17

Cassandra 0.4.2 vs 0.5

Page 18: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

18

Cassandra 0.4.2 vs 0.5

Page 19: Yahoo! Cloud Serving Benchmark · System setup and tuning assistance from members of the Cassandra and HBase committers, and the Sherpa engineering team ... • Target throughput

19

For more information •  Contact: Brian Cooper ([email protected]) •  Detailed writeup of benchmark:

http://www.brianfrankcooper.net/pubs/ycsb.pdf •  Open source YCSB tool coming soon (watch

http://research.yahoo.com/Web_Information_Management/YCSB)