The open source, pluggable, nosql benchmarking suite.
Go to file
2020-02-20 16:26:49 -06:00
at-diag import activity types 2020-02-20 15:38:09 -06:00
at-http import activity types 2020-02-20 15:38:09 -06:00
at-stdout import activity types 2020-02-20 15:38:09 -06:00
at-tcp import activity types 2020-02-20 15:38:09 -06:00
docs add legacy docs 2020-02-20 15:38:20 -06:00
nb import nosqlbench 2020-02-20 15:37:57 -06:00
nb-api import nosqlbench 2020-02-20 15:37:57 -06:00
nb-cli import nosqlbench 2020-02-20 15:37:57 -06:00
nb-core import nosqlbench 2020-02-20 15:37:57 -06:00
nb-defaults import nosqlbench 2020-02-20 15:37:57 -06:00
nb-docker import nosqlbench 2020-02-20 15:37:57 -06:00
nb-docs import nosqlbench 2020-02-20 15:37:57 -06:00
nb-extensions import nosqlbench 2020-02-20 15:37:57 -06:00
virtdata-annotations import virtdata 2020-02-20 15:37:40 -06:00
virtdata-api import virtdata 2020-02-20 15:37:40 -06:00
virtdata-defaults import virtdata 2020-02-20 15:37:40 -06:00
virtdata-docsys import virtdata 2020-02-20 15:37:40 -06:00
virtdata-lang import virtdata 2020-02-20 15:37:40 -06:00
virtdata-lib-basics import virtdata 2020-02-20 15:37:40 -06:00
virtdata-lib-curves4 import virtdata 2020-02-20 15:37:40 -06:00
virtdata-lib-random import virtdata 2020-02-20 15:37:40 -06:00
virtdata-lib-realer import virtdata 2020-02-20 15:37:40 -06:00
virtdata-processors import virtdata 2020-02-20 15:37:40 -06:00
virtdata-realdata import virtdata 2020-02-20 15:37:40 -06:00
virtdata-userlibs import virtdata 2020-02-20 15:37:40 -06:00
.gitignore initial readme 2020-02-20 15:37:24 -06:00
.travis.yml initial readme 2020-02-20 15:37:24 -06:00
pom.xml import pom.xml 2020-02-20 15:38:34 -06:00
README.md update name in readme 2020-02-20 16:26:49 -06:00

This project combines upstream projects of engineblock and virtualdataset into one main project. More details on release practices and contributor guidelines are on the way.

Status

This is in active development. Collaborators are welcome. However, there is still work to be done to groom the slope for new users.

Project Structure

NoSQLBench is a large project. It has lots of advanced functionality built-in that you won't find in any other performance testing tool.

The modules are named in a consistent way. The naming conventions are as follows:

  • All virtdata-... modules are the procedural generation system.
  • All virtdata-lib-... modules are function libraries for mapping coordinates to virtual data.
  • All nb-... modules are part of the nosqlbench runtime engine.
  • The main module that users interact with comes from the nb project. The binary is simply named nb, and the executable jar is nb.jar.

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, with nb.jar all features are supported, except --docker-metrics
  3. On Windows, with nb.jar all features are supported, except --docker-metrics

nosqlbench

This project aims to provide a missing power tool in the test tooling arsenal.

The design goals:

  1. Provide a useful and intuitive Reusable Machine Pattern for constructing and reasoning about concurrent performance tests. To encourage this, the runtime machinery is based on simple and tangible core concepts.
  2. Reduce testing time of complex scenarios with many variables. This is achieved by controlling tests from an open javascript sandbox. This makes more sophisticated scenarios possible when needed.
  3. Minimize the amount of effort required to get empirical results from a test cycle. For this, metrics reporting is baked in.

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, EB will let you load it like a plugin and control it dynamically.

The most direct way to do this, if you are a tool developer, is to build your own activity type drivers and embed EB as the core runtime. You can always experiment with it and learn how it works by using the built-in diagnostic drivers.

History

The NoSQLBench project started as a branch of test client. It has since evolved to be more generic and capable.

License

nosqlbench is licensed under the Apache Public License 2.0

Thanks

DataStax Logo

This project is sponsored by DataStax -- 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.

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.