Core Workloads

nickmbailey edited this page Oct 6, 2010 · 4 revisions

YCSB includes a set of core workloads that define a basic benchmark for cloud systems. Of course, you can define your own workloads, as described in Implementing New Workloads. However, the core workloads are a useful first step, and obtaining these benchmark numbers for a variety of different systems would allow you to understand the performance
tradeoffs of different systems.


The core workloads consist of six different workloads:


Workload A: Update heavy workload


This workload has a mix of 50/50 reads and writes. An application example is a session store recording recent actions.


Workload B: Read mostly workload

This workload has a 95/5 reads/write mix. Application example: photo tagging; add a tag is an update, but most operations are to read tags.


Workload C: Read only


This workload is 100% read. Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop).


Workload D: Read latest workload


In this workload, new records are inserted, and the most recently inserted records are the most popular. Application example: user status updates; people want to read the latest.


Workload E: Short ranges


In this workload, short ranges of records are queried, instead of individual records. Application example: threaded conversations, where each scan is for the posts in a given thread (assumed to be clustered by thread id).

Workload F: Read-modify-write

In this workload, the client will read a record, modify it, and write back the changes. Application example: user database, where user records are read and modified by the user or to record user activity.

Running the workloads

All six workloads have a data set which is similar. Workloads D and E insert records during the test run. Thus, to keep the database size consistent, we recommend the following sequence:


  1. Load the database, using workload A’s parameter file (workloads/workloada) and the “-load” switch to the client.
  2. Run workload A (using workloads/workloada and “-t”) for a variety of throughputs.
  3. Run workload B (using workloads/workloadb and “-t”) for a variety of throughputs.
  4. Run workload C (using workloads/workloadc and “-t”) for a variety of throughputs.
  5. Run workload F (using workloads/workloadf and “-t”) for a variety of throughputs.
  6. Run workload D (using workloads/workloadd and “-t”) for a variety of throughputs. This workload inserts records, increasing the size of the database.
  7. Delete the data in the database.
  8. Reload the database, using workload E’s parameter file (workloads/workloade) and the "-load switch to the client.
  9. Run workload E (using workloads/workloade and “-t”) for a variety of throughputs. This workload inserts records, increasing the size of the database.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.