The open source, pluggable, nosql benchmarking suite.
Go to file
Jonathan Shook 298daee08e
Merge pull request #666 from nosqlbench/snyk-upgrade-64a5deb563f750be5bd42c8c5b871c41
[Snyk] Upgrade org.apache.pulsar:pulsar-client from 2.10.0 to 2.10.1
2022-07-26 11:04:37 -05:00
.github Upgrade checkout and setup-java actions from v2 to v3 2022-07-22 13:03:25 -04:00
.run chromedriver working, verbs alpha 2020-04-15 09:37:47 -05:00
adapter-cqld4 Merge branch 'main' of github.com:nosqlbench/nosqlbench 2022-07-19 12:30:26 -05:00
adapter-diag [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
adapter-dynamodb Merge pull request #662 from nosqlbench/snyk-fix-3d983ea7a1d45448777c999ebbfe43f8 2022-07-19 12:44:38 -05:00
adapter-http [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
adapter-mongodb [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
adapter-stdout [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
adapter-tcp [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
adapters-api Merge branch 'main' of github.com:nosqlbench/nosqlbench 2022-07-19 12:30:26 -05:00
devdocs docs updates 2022-06-16 15:13:17 -05:00
docsys [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
driver-cockroachdb Merge pull request #622 from nosqlbench/snyk-upgrade-0ccb22faf6f942f950951c639548cfb8 2022-07-06 11:18:50 -05:00
driver-jdbc add multiple authorizor fallback methods 2022-07-05 21:12:28 -05:00
driver-jms Merge pull request #642 from nosqlbench/snyk-upgrade-b4fca24ed54938c8817400fe5d39f986 2022-07-19 12:51:25 -05:00
driver-jmx package refactoring 2022-07-14 20:40:06 -05:00
driver-kafka package refactoring 2022-07-14 19:01:00 -05:00
driver-pulsar fix: upgrade org.apache.pulsar:pulsar-client from 2.10.0 to 2.10.1 2022-07-20 10:33:33 +00:00
engine-api [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-cli [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-clients [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-core [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-docker [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-docs [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-extensions [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
engine-rest Merge pull request #644 from nosqlbench/snyk-upgrade-9133a7ddd41d98985ecc7f5777752bfe 2022-07-19 12:51:40 -05:00
mvn-defaults Merge pull request #668 from nosqlbench/snyk-upgrade-2c5c12ca681b571105da822310b9fec6 2022-07-26 11:04:28 -05:00
nb update version for inactive poms 2022-07-05 21:10:18 -05:00
nb5 [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
nb-annotations [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
nb-api Merge pull request #663 from nosqlbench/snyk-fix-e90c2b995e9745e77a0cf81aa99487ca 2022-07-19 12:44:26 -05:00
nb-spectest [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
nbr [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
nbr-examples [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
scripts make accepting license updates easier 2022-05-20 13:57:13 -05:00
sort_docs doc: old docs to be sorted 2021-09-13 09:56:47 -05:00
virtdata-api [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-lang [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-lib-basics [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-lib-curves4 [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-lib-random [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-lib-realer [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-realdata [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
virtdata-userlibs [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
.editorconfig [issue-65] add EditorConfig configuration file 2020-03-16 13:51:41 +01:00
.gitignore ignore generated files for Apache Rat checking 2022-03-09 09:57:04 -06:00
BUILDING.md Minor fix to BUILDING.md as Java baseline is 17, not 12 (as per mvn-defaults/pom.xml) 2022-05-13 09:10:23 -07:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2020-03-16 15:34:50 +00:00
CONTRIBUTING.md fix broken discord links 2021-03-15 10:21:23 -05:00
deploy.xml added deploy.xml 2020-03-10 02:56:24 -05:00
Dockerfile update docker file for nb5 2022-07-01 09:47:06 -05:00
DOWNLOADS.md Fix markdown typos introduced by auto formatting 2021-09-17 13:12:56 -05:00
LICENSE.txt core project files 2020-03-16 08:41:22 -05:00
MODULES.md rename activitytype modules to driver modules 2020-05-05 11:29:30 -05:00
pom.xml [maven-release-plugin] prepare for next development iteration 2022-07-19 16:11:11 +00:00
README.md update readme with basic branch info 2022-06-23 00:38:03 -05:00
release.xml fix missing release file 2020-06-17 17:48:09 -05:00
RELEASENOTES.md fix release for partition cardinality 2022-07-19 12:42:39 -05:00

NoSQLBench

The Open Source, Pluggable, NoSQL Benchmarking Suite

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.

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 Discord Server

We have a discord server. This is where users and developers can discuss anything about NoSQLBench and support each other. Please join us there if you are a new user of NoSQLBench!

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 This project is sponsored by DataStax -- 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.
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.
Deploys by Netlify This site (soon to be) deployed by Netlify!