2022-04-25 10:11:16 -05:00
|
|
|
[comment]: < ![build](https://github.com/nosqlbench/nosqlbench/workflows/build/badge.svg) >
|
2020-03-13 01:38:15 -05:00
|
|
|
|
2022-06-23 00:38:03 -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
|
|
|
|
2022-06-23 00:38:03 -05:00
|
|
|
# BRANCH STATUS
|
|
|
|
|
|
|
|
The main branch of NoSQLBench is the active development branch for the upcoming NoSQLBench 5.
|
|
|
|
It requires Java 17 to build, and has a limited set of drivers available as the previous drivers are
|
|
|
|
updated to the newer APIs (and features).
|
|
|
|
|
|
|
|
If you want to build or modify the current stable release, that is on nb4-maintenance, and requires
|
|
|
|
Java 14 or lower to build. Stable releases contain all of the prior drivers.
|
|
|
|
|
|
|
|
To distinguish between versions, the binary and jar artifacts for nb5 (main) builds are named `nb5`.
|
|
|
|
|
|
|
|
|
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
|
|
|
|
2021-03-12 15:06:43 -06:00
|
|
|
### NoSQLBench Discord Server
|
2020-06-08 18:04:55 -05:00
|
|
|
|
2021-03-12 15:06:43 -06:00
|
|
|
We have a discord server. This is where users and developers can discuss
|
|
|
|
anything about NoSQLBench and support each other.
|
2021-03-15 10:21:23 -05:00
|
|
|
Please [join us](https://discord.gg/dBHRakusMN) there if you are a new
|
2021-03-12 15:06:43 -06:00
|
|
|
user of NoSQLBench!
|
2020-06-03 13:24:37 -05:00
|
|
|
|
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
|
|
|
|
|
2021-07-26 06:05:50 -05:00
|
|
|
<table cellspacing="1" cellpadding="1" style="border: 0px" align="left">
|
2021-02-20 08:41:43 -06:00
|
|
|
<tr>
|
2021-07-26 06:05:50 -05:00
|
|
|
<td width="20%"><a href="https://datastax.com" target="_blank"><img src="https://www.datastax.com/sites/default/files/2020-12/datastax-logotype-positive.png" alt="DataStax" width="250"/></a></td>
|
|
|
|
<td>This project is sponsored by <a href="https://www.datastax.com">DataStax</a> -- The Open,
|
|
|
|
Multi-Cloud Stack for Modern Data Apps built on Apache Cassandra™, Kubernetes *Based*, Developer *Ready* &
|
|
|
|
Cloud *Delivered* 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.
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td><a href="https://www.yourkit.com/"><img src="https://www.yourkit.com/images/yklogo.png" alt="YourKit Logo"></a></td>
|
|
|
|
<td>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.
|
|
|
|
</td>
|
2021-02-20 08:41:43 -06:00
|
|
|
</tr>
|
2021-07-26 05:47:18 -05:00
|
|
|
|
2021-07-26 06:05:50 -05:00
|
|
|
<tr>
|
|
|
|
<td><a href="https://www.netlify.com"
|
|
|
|
><img src="https://www.netlify.com/img/global/badges/netlify-dark.svg" alt="Deploys by Netlify"/></a></td>
|
2021-07-26 11:36:52 -05:00
|
|
|
<td>This site (soon to be) deployed by Netlify!</td>
|
2021-07-26 06:05:50 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|