00 Designing Workloads
Workloads in nosqlbench are always controlled by a workload definition. Even the built-in workloads are simply pre-configured and controlled from a YAML file which is bundled internally.
With nosqlbench a standard configuration format is provided that is used across all activity types. This makes it easy to specify op templates, parameters, data bindings, and tags. This section describes the standard YAML format and how to use it.
It is recommended that you read through the examples in each of the design sections in order. This guide was designed to give you a detailed understanding of workload construction with nosqlbench. The examples will also give you better insight into how nosqlbench works at a fundamental level.
👉 To align to new API features and concepts, the term statement has been generalized to
operation. The YAML statements
property is supported as ops
, and a variety of new forms are
supported. These will be provided as examples in a future docs update.
Multi-Protocol Support
You will notice that this guide is not overly CQL-specific. That is because NoSQLBench is a multi-protocol tool. All that is needed for you to use this guide with other protocols is the use of a different activity type. Try to keep that in mind as you think about designing workloads.
Advice for new builders
Look for built-ins first
If you haven't yet run NoSQLBench with a built-in workload, then this section may not be necessary reading. It is possible that a built-in workload will do what you need. If not, please read on.
Review existing examples
The built-in workloads that are include with nosqlbench are also easy to copy out as a starting point. You just need to use two commands:
# find a workload you want to copy
nb --list-workloads
# copy a workload to your local directory
nb --copy cql-iot
Follow the conventions
The tagging conventions described under the YAML Conventions section will make your testing go smoother. All of the baselines that we publish for nosqlbench will use this form.