Illustration Image

Cassandra.Link

The best knowledge base on Apache Cassandra®

Helping platform leaders, architects, engineers, and operators build scalable real time data platforms.

10/26/2020

Reading time:4 min

nosqlbench/nosqlbench

by nosqlbench

The Open Source, Pluggable, NoSQL Benchmarking SuiteGet it HereContribute to NoSQLBenchRead the DocsWhat is NoSQLBench?NoSQLBench is a serious performance testing tool for the NoSQL ecosystem. It brings together features and capabilitiesthat are not found in any other tool.You can run common testing workloads directly from the command line. You can start doing this within 5 minutes ofreading this.You can generate virtual data sets of arbitrary size, with deterministic data and statistically shaped values.You can design custom workloads that emulate your application, contained in a single file, based on statementtemplates - no IDE or coding required.You can immediately plot your results in a docker and grafana stack on Linux with a single command line option.When needed, you can open the access panels and rewire the runtime behavior of NoSQLBench to do advanced testing,including a full scripting environment with Javascript.The core machinery of NoSQLBench has been built with attention to detail. It has been battle tested within DataStax as away to help users validate their data models, baseline system performance, and qualify system designs for scale.In short, NoSQLBench wishes to be a programmable power tool for performance testing. However, it is somewhat generic. Itdoesn't know directly about a particular type of system, or protocol. It simply provides a suitable machine harness inwhich to put your drivers and testing logic. If you know how to build a client for a particular kind of system, it willlet you load it like a plugin and control it dynamically.Initially, NoSQLBench comes with support for CQL, but we would like to see this expanded with contributions from others.OriginsThe code in this project comes from multiple sources. The procedural data generation capability was known before as'Virtual Data Set'. The core runtime and scripting harness was from the 'EngineBlock' project. The CQL support waspreviously used within DataStax. In March of 2020, DataStax and the project maintainers for these projects decided toput everything into one OSS project in order to make contributions and sharing easier for everyone. Thus, the newproject name and structure was launched as nosqlbench.io. NoSQLBench is an independent project that is sponsored byDataStax.We offer NoSQLBench as a new way of thinking about testing systems. It is not limited to testing only one type ofsystem. It is our wish to build a community of users and practice around this project so that everyone in the NoSQLecosystem can benefit from common concepts and understanding and reliable patterns of use.Getting SupportIn general, our goals with NoSQLBench are to make the help systems and examples wrap around the users like a suit ofarmor, so that they feel capable of doing most things autonomously. Please keep this in mind when looking for personalsupport form our community, and help us find those places where the docs are lacking. Maybe you can help us by addingsome missing docs!NoSQLBench SlackThere is a new slack channel at nosqlbench.slack.com. In order to access the slack channel, you'll need an invite. Youcan get that throughthis simple form,which will send you an invite in email: Slack Invite. This is just a simple google form that automates the inviteprocess.Please join it if you are a new or existing NoSQLBench user and help us get it going!ContributingWe are actively looking for contributors to help make NoSQLBench better. This is an ambitious project that is justfinding its stride. If you want to be part of the next chapter in NoSQLBench development please look atCONTRIBUTING for ideas, and jump in where you feel comfortable.All contributors are expected to abide by the CODE_OF_CONDUCT.LicenseAll of the code in this repository is licensed under the APL version 2. If you contribute to this project, then you mustagree to license all of your constributions under this license.System CompatibilityThis is a Linux targeted tool, as most cloud/nosql testing is done on Linux instances. Some support for other systems isavailable, but more work is needed to support them fully. Here is what is supported for each:on Linux, all features are supported, for both nb.jar as well as the appimage binary nbon Mac, all features are supported, with nb.jar.On Windows, with nb.jar all features are supported, except --docker-metrics.ThanksThis project is sponsored by DataStax -- The always-on, active everywhere, distributed hybridcloud database built on Apache Cassandra™, and designed from the ground up to run anywhere, on any cloud, in anydatacenter, and in every possible combination. DataStax delivers the ultimate hybrid and multi-cloud database.This project uses tools provided by YourKit, LLC. YourKit supports open source projects with its full-featured JavaProfiler. YourKit, LLC is the creator of YourKit Java Profiler andYourKit .NET Profiler, innovative and intelligent tools forprofiling Java and .NET applications.

Illustration Image

build

The Open Source, Pluggable, NoSQL Benchmarking Suite

Get it Here

Contribute to NoSQLBench

Read the Docs

What is NoSQLBench?

NoSQLBench is a serious performance testing tool for the NoSQL ecosystem. It brings together features and capabilities that are not found in any other tool.

  • You can run common testing workloads directly from the command line. You can start doing this within 5 minutes of reading this.
  • You can generate virtual data sets of arbitrary size, with deterministic data and statistically shaped values.
  • You can design custom workloads that emulate your application, contained in a single file, based on statement templates - no IDE or coding required.
  • You can immediately plot your results in a docker and grafana stack on Linux with a single command line option.
  • When needed, you can open the access panels and rewire the runtime behavior of NoSQLBench to do advanced testing, including a full scripting environment with Javascript.

The core machinery of NoSQLBench has been built with attention to detail. It has been battle tested within DataStax as a way to help users validate their data models, baseline system performance, and qualify system designs for scale.

In short, NoSQLBench wishes to be a programmable power tool for performance testing. However, it is somewhat generic. It doesn't know directly about a particular type of system, or protocol. It simply provides a suitable machine harness in which to put your drivers and testing logic. If you know how to build a client for a particular kind of system, it will let you load it like a plugin and control it dynamically.

Initially, NoSQLBench comes with support for CQL, but we would like to see this expanded with contributions from others.

Origins

The code in this project comes from multiple sources. The procedural data generation capability was known before as 'Virtual Data Set'. The core runtime and scripting harness was from the 'EngineBlock' project. The CQL support was previously used within DataStax. In March of 2020, DataStax and the project maintainers for these projects decided to put everything into one OSS project in order to make contributions and sharing easier for everyone. Thus, the new project name and structure was launched as nosqlbench.io. NoSQLBench is an independent project that is sponsored by DataStax.

We offer NoSQLBench as a new way of thinking about testing systems. It is not limited to testing only one type of system. It is our wish to build a community of users and practice around this project so that everyone in the NoSQL ecosystem can benefit from common concepts and understanding and reliable patterns of use.

Getting Support

In general, our goals with NoSQLBench are to make the help systems and examples wrap around the users like a suit of armor, so that they feel capable of doing most things autonomously. Please keep this in mind when looking for personal support form our community, and help us find those places where the docs are lacking. Maybe you can help us by adding some missing docs!

NoSQLBench Slack

There is a new slack channel at nosqlbench.slack.com. In order to access the slack channel, you'll need an invite. You can get that through this simple form, which will send you an invite in email: Slack Invite. This is just a simple google form that automates the invite process.

Please join it if you are a new or existing NoSQLBench user and help us get it going!

Contributing

We are actively looking for contributors to help make NoSQLBench better. This is an ambitious project that is just finding its stride. If you want to be part of the next chapter in NoSQLBench development please look at CONTRIBUTING for ideas, and jump in where you feel comfortable.

All contributors are expected to abide by the CODE_OF_CONDUCT.

License

All of the code in this repository is licensed under the APL version 2. If you contribute to this project, then you must agree to license all of your constributions under this license.

System Compatibility

This is a Linux targeted tool, as most cloud/nosql testing is done on Linux instances. Some support for other systems is available, but more work is needed to support them fully. Here is what is supported for each:

  1. on Linux, all features are supported, for both nb.jar as well as the appimage binary nb
  2. on Mac, all features are supported, with nb.jar.
  3. On Windows, with nb.jar all features are supported, except --docker-metrics.

Thanks

DataStax Logo

This project is sponsored by DataStax -- The always-on, active everywhere, distributed hybrid cloud database built on Apache Cassandra™, and designed from the ground up to run anywhere, on any cloud, in any datacenter, and in every possible combination. DataStax delivers the ultimate hybrid and multi-cloud database.

YourKit Logo

This project uses tools provided by YourKit, LLC. YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

Related Articles

cassandra
artificial.intelligence
machine.learning

Architect’s Guide to Using NoSQL for Real-time AI: Part 1

John Doe

6/9/2023

cassandra
nosql

Checkout Planet Cassandra

Claim Your Free Planet Cassandra Contributor T-shirt!

Make your contribution and score a FREE Planet Cassandra Contributor T-Shirt! 
We value our incredible Cassandra community, and we want to express our gratitude by sending an exclusive Planet Cassandra Contributor T-Shirt you can wear with pride.

Join Our Newsletter!

Sign up below to receive email updates and see what's going on with our company

Explore Related Topics

AllKafkaSparkScyllaSStableKubernetesApiGithubGraphQl

Explore Further

cassandra