2020-03-13 02:54:29 -05:00
|
|
|
![build](https://github.com/nosqlbench/nosqlbench/workflows/build/badge.svg)
|
2020-03-13 01:38:15 -05:00
|
|
|
|
2020-03-16 21:44:33 -05:00
|
|
|
# NoSQLBench
|
2020-02-20 15:37:24 -06:00
|
|
|
|
2020-03-16 21:44:33 -05:00
|
|
|
**The Open Source, Pluggable, NoSQL Benchmarking Suite**
|
2020-02-20 15:37:24 -06:00
|
|
|
|
2020-03-23 09:06:23 -05:00
|
|
|
[Get it Here](DOWNLOADS.md)
|
|
|
|
|
2020-09-08 17:47:19 -05:00
|
|
|
[Contribute to NoSQLBench](CONTRIBUTING.md)
|
|
|
|
|
2020-03-25 12:06:39 -05:00
|
|
|
[Read the Docs](http://docs.nosqlbench.io/)
|
|
|
|
|
2020-03-16 21:44:33 -05:00
|
|
|
## What is NoSQLBench?
|
2020-02-20 15:37:24 -06:00
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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.
|
2020-03-16 21:44:33 -05:00
|
|
|
|
|
|
|
## Origins
|
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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.
|
2020-02-20 15:37:24 -06:00
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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.
|
2020-02-20 15:37:24 -06:00
|
|
|
|
2020-06-03 13:24:37 -05:00
|
|
|
## Getting Support
|
|
|
|
|
2020-06-08 18:04:55 -05:00
|
|
|
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!
|
2020-06-03 13:24:37 -05:00
|
|
|
|
|
|
|
### NoSQLBench Slack
|
2020-06-08 18:04:55 -05:00
|
|
|
|
|
|
|
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](https://docs.google.com/forms/d/e/1FAIpQLSdUOJ8iAPqyxsLfh1nBBsKShI53RAeuzYW4bKExmRMWjj4ufQ/viewform),
|
|
|
|
which will send you an invite in email: Slack Invite. This is just a simple google form that automates the invite
|
|
|
|
process.
|
2020-06-03 13:24:37 -05:00
|
|
|
|
|
|
|
Please join it if you are a new or existing NoSQLBench user and help us get it going!
|
|
|
|
|
2020-03-16 21:44:33 -05:00
|
|
|
## Contributing
|
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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
|
2020-03-16 21:44:33 -05:00
|
|
|
[CONTRIBUTING](CONTRIBUTING.md) for ideas, and jump in where you feel comfortable.
|
|
|
|
|
|
|
|
All contributors are expected to abide by the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md).
|
2020-02-20 15:37:24 -06:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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.
|
2020-03-16 21:44:33 -05:00
|
|
|
|
|
|
|
## System Compatibility
|
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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:
|
2020-03-16 21:44:33 -05:00
|
|
|
|
|
|
|
1. on Linux, all features are supported, for both `nb.jar` as well as the appimage binary `nb`
|
2020-05-01 13:56:02 -05:00
|
|
|
2. on Mac, all features are supported, with `nb.jar`.
|
|
|
|
3. On Windows, with `nb.jar` all features are supported, except `--docker-metrics`.
|
2020-02-20 15:37:24 -06:00
|
|
|
|
|
|
|
## Thanks
|
|
|
|
|
|
|
|
[![DataStax Logo](https://www.datastax.com/sites/default/files/content/graphics/logo/DS-logo-2019_1-25percent.png)](http://datastax.com/)
|
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
This project is sponsored by [DataStax](http://datastax.com/) -- 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.
|
2020-02-20 15:37:24 -06:00
|
|
|
|
|
|
|
![YourKit Logo](https://www.yourkit.com/images/yklogo.png)
|
|
|
|
|
2020-05-01 13:56:02 -05:00
|
|
|
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 <a href="https://www.yourkit.com/java/profiler/">YourKit Java Profiler</a> and
|
|
|
|
<a href="https://www.yourkit.com/.net/profiler/">YourKit .NET Profiler</a>, innovative and intelligent tools for
|
|
|
|
profiling Java and .NET applications.
|