The open source, pluggable, nosql benchmarking suite.
Go to file
2024-03-22 17:33:40 +00:00
.github remove codeql analysis workflow for now 2024-03-22 12:14:04 -05:00
.idea/scopes update TODO scopes 2023-10-23 08:42:19 -05:00
.run add some run profiles 2024-03-21 14:32:06 -05:00
adapter-amqp build(deps): bump org.apache.commons:commons-configuration2 2024-03-21 19:18:45 +00:00
adapter-aws-opensearch fixed updated signature for subop 2024-03-21 14:04:58 -05:00
adapter-cqld4 updates to generate runnable cql statements 2024-03-12 15:11:21 -04:00
adapter-diag move simrate to its own package 2024-01-02 11:34:05 -06:00
adapter-dynamodb fix: upgrade com.amazonaws:aws-java-sdk-dynamodb from 1.12.656 to 1.12.658 2024-03-07 19:28:44 +00:00
adapter-http fix: adapter-http/pom.xml to reduce vulnerabilities 2024-03-06 18:34:17 +00:00
adapter-jdbc Bump org.postgresql:postgresql from 42.6.0 to 42.7.2 in /adapter-jdbc 2024-02-22 19:04:05 -05:00
adapter-kafka build(deps): bump org.apache.commons:commons-configuration2 2024-03-21 17:38:36 -04:00
adapter-milvus implement bulk op 2024-03-21 19:04:39 -05:00
adapter-mongodb Merge branch 'main' into jshook/talk-improvements 2023-12-15 11:12:02 -08:00
adapter-pinecone code cleanup 2024-03-06 17:46:29 -04:00
adapter-pulsar build(deps): bump org.apache.commons:commons-configuration2 2024-03-21 19:17:55 +00:00
adapter-s4j build(deps): bump org.apache.commons:commons-configuration2 2024-03-21 19:18:33 +00:00
adapter-stdout package factoring 2023-12-09 17:16:44 -06:00
adapter-tcp package factoring 2023-12-09 17:16:44 -06:00
adapters-api milvus query and recall calculations working 2024-03-21 16:01:11 -05:00
devdocs remove deprecated CommandTemplate 2023-12-08 19:37:06 -06:00
docsys Merge pull request #1845 from nosqlbench/snyk-upgrade-1051cffe7c9b53b10fce095f635c6a5b 2024-02-23 19:36:35 -05:00
engine-cli propagate errors to main call 2024-01-18 00:23:31 -06:00
engine-clients provide better diagnostics for interrupted annotation post 2023-12-15 23:10:48 -06:00
engine-core Merge pull request #1885 from cognitree/error-on-duplicate-options 2024-03-22 12:31:29 -05:00
engine-extensions addressing PR comments 2024-01-22 17:11:59 -04:00
mvn-defaults more updates on milvus, distinguishing rows vs fields 2024-03-21 12:58:55 -05:00
nb5 fix for unreliable submodule profile activation 2024-03-22 12:12:19 -05:00
nb5-proof cleanups and minor docs 2023-10-23 08:42:19 -05:00
nb-annotations formatting fix 2024-01-18 00:23:24 -06:00
nb-api next wave of fixes for milvus 2024-03-20 12:54:32 -05:00
nb-spectest fix: upgrade com.vladsch.flexmark:flexmark-html2md-converter from 0.64.6 to 0.64.8 (#1339) 2023-06-16 15:06:23 -05:00
nbr rework 2024-02-06 07:32:25 -04:00
nbr-examples direct test for command error handling in session 2024-01-31 09:05:56 -06:00
scripts force build 2024-03-21 20:32:01 -05:00
sort_docs doc: old docs to be sorted 2021-09-13 09:56:47 -05:00
virtdata-api next wave of fixes for milvus 2024-03-20 12:54:32 -05:00
virtdata-lang change all references of context to container 2023-12-07 09:40:40 -06:00
virtdata-lib-basics Merge branch 'jshook/vector_precision' 2024-03-12 10:26:05 -05:00
virtdata-lib-curves4 remainder of changes for scenario rework that need to be itemized 2023-12-06 14:26:53 -06:00
virtdata-lib-hdf5 updates to generate runnable cql statements 2024-03-12 15:11:21 -04:00
virtdata-lib-random remainder of changes for scenario rework that need to be itemized 2023-12-06 14:26:53 -06:00
virtdata-lib-realer partial work on DNN-Circular (not ready for merge to main) 2024-02-05 15:40:19 -06:00
virtdata-lib-vectors re-enable snapshots repo to fix virtdata module 2024-03-18 15:53:52 -05:00
virtdata-realdata centralize jacoco template for reconfiguration 2023-01-26 23:32:15 -06:00
virtdata-userlibs move vector bindings into dedicated module 2024-02-05 20:18:24 -06:00
.all-contributorsrc docs: update .all-contributorsrc [skip ci] 2023-12-06 23:34:21 +00:00
.editorconfig [issue-65] add EditorConfig configuration file 2020-03-16 13:51:41 +01:00
.gitignore Adding launch symlink, helper run config, minor milvus workload updates 2024-03-19 14:42:20 -04: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 docs: update CONTRIBUTING.md [skip ci] 2024-03-22 17:33:40 +00:00
deploy.xml added deploy.xml 2020-03-10 02:56:24 -05:00
Dockerfile update java base runtime for Docker 2023-10-23 08:42:19 -05:00
DOWNLOADS.md Update DOWNLOADS.md 2023-01-24 15:00:49 -06: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
nb_521.md remainder of changes for scenario rework that need to be itemized 2023-12-06 14:26:53 -06:00
pom.xml more updates on milvus, distinguishing rows vs fields 2024-03-21 12:58:55 -05:00
PREVIEW_NOTES.md updated preview notes, updated notes path 2023-01-25 22:10:17 -06:00
README.md add sibling labels restriction and some docs 2023-10-23 16:45:10 -05:00
RELEASE_NOTES.md docs and scripts 2023-01-23 20:04:45 -06:00
release.xml fix missing release file 2020-06-17 17:48:09 -05:00

Maven Central Star on Github Chat on Discord

NoSQLBench 5

The Open Source, Pluggable, NoSQL Benchmarking Suite

👉 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.

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.
  • 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.

Origins

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.

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 contributions 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 nb5.jar as well as the appimage binary nb
  2. on Mac, all features are supported, with nb5.jar.
  3. on Windows, all features are supported, with nb5.jar.

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.

Contributors

Checkout all our wonderful contributors here.