2022-04-25 10:11:16 -05:00
|
|
|
[comment]: < ![build](https://github.com/nosqlbench/nosqlbench/workflows/build/badge.svg) >
|
2023-02-06 18:48:54 -06:00
|
|
|
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.nosqlbench/nosqlbench/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.nosqlbench/nosqlbench)
|
2023-02-07 06:18:37 -06:00
|
|
|
[![Star on Github](https://img.shields.io/github/stars/nosqlbench/nosqlbench.svg?style=social)](https://github.com/nosqlbench/nosqlbench/stargazers)
|
|
|
|
[![Chat on Discord](https://img.shields.io/discord/819995781406130176?logo=discord)](https://discord.gg/dBHRakusMN)
|
2022-06-23 00:38:03 -05:00
|
|
|
|
2023-10-23 16:45:10 -05:00
|
|
|
# NoSQLBench 5
|
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
|
|
|
|
2023-10-23 16:45:10 -05:00
|
|
|
👉 The current version of NoSQLBench in development is _5.21_, which is based on Java 21 LTS.
|
|
|
|
All new language features in Java 21, and some preview features may be used. There are
|
|
|
|
significant improvements in this branch which will be documented before a main release is
|
|
|
|
published. If you are presently using NoSQLBench for testing, and are not actively developing
|
|
|
|
against the code base, it is recommended that you stay on the latest 5.17 release until an
|
|
|
|
official 5.21 release is available. [What's in store for 5.21.](nb_521.md)
|
|
|
|
|
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
|
|
|
|
2023-10-23 16:45:10 -05:00
|
|
|
NoSQLBench is a serious performance testing tool for the NoSQL ecosystem. It brings together
|
|
|
|
features and capabilities
|
2020-05-01 13:56:02 -05:00
|
|
|
that are not found in any other tool.
|
|
|
|
|
2023-10-23 16:45:10 -05:00
|
|
|
- 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.
|
|
|
|
- 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 and in the NoSQL ecosystem 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. The core runtime of NoSQLBench 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. However, several protocols are
|
|
|
|
supported out of the box as bundled drivers.
|
2020-03-16 21:44:33 -05:00
|
|
|
|
|
|
|
## Origins
|
|
|
|
|
2023-10-23 16:45:10 -05:00
|
|
|
The code in this project comes from multiple sources. The procedural data generation capability was
|
|
|
|
known before as 'Virtual Data Set' OSS project. The core runtime and scripting harness was from
|
|
|
|
the 'EngineBlock' OSS project. The CQL driver module 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
|
|
|
|
2023-10-23 16:45:10 -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
|
|
|
|
|
2023-10-23 16:45:10 -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
|
|
|
|
2023-10-23 16:45:10 -05:00
|
|
|
We have a discord server. This is where users and developers can discuss anything about NoSQLBench
|
|
|
|
and support each other. Please [join us](https://discord.gg/dBHRakusMN) there if you are a new user
|
|
|
|
of NoSQLBench!
|
2020-06-03 13:24:37 -05:00
|
|
|
|
2020-03-16 21:44:33 -05:00
|
|
|
## Contributing
|
|
|
|
|
2023-10-23 16:45:10 -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 [CONTRIBUTING](CONTRIBUTING.md) for ideas, and jump in where you feel
|
|
|
|
comfortable.
|
2020-03-16 21:44:33 -05:00
|
|
|
|
|
|
|
All contributors are expected to abide by the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md).
|
2020-02-20 15:37:24 -06:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2023-10-23 16:45:10 -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 contributions under this license.
|
2020-03-16 21:44:33 -05:00
|
|
|
|
|
|
|
## System Compatibility
|
|
|
|
|
2023-10-23 16:45:10 -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
|
|
|
|
2023-01-18 14:37:23 -06:00
|
|
|
1. on Linux, all features are supported, for both `nb5.jar` as well as the appimage binary `nb`
|
|
|
|
2. on Mac, all features are supported, with `nb5.jar`.
|
2023-09-28 14:30:18 -05:00
|
|
|
3. on Windows, all features are supported, with `nb5.jar`.
|
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>
|
2023-01-18 14:37:23 -06:00
|
|
|
<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* &
|
2021-07-26 06:05:50 -05:00
|
|
|
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 06:05:50 -05:00
|
|
|
</table>
|
2023-02-06 18:57:32 -06:00
|
|
|
|
|
|
|
## Contributors
|
2023-10-23 16:45:10 -05:00
|
|
|
|
2023-02-07 10:49:19 -06:00
|
|
|
Checkout all our wonderful contributors [here](./CONTRIBUTING.md#contributors).
|
2023-02-06 18:57:32 -06:00
|
|
|
|
2023-09-28 14:30:18 -05:00
|
|
|
---
|