mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2024-11-22 08:46:56 -06:00
44 lines
2.0 KiB
Markdown
44 lines
2.0 KiB
Markdown
## 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](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).
|
|
|
|
## 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 construbutions under
|
|
this license.
|
|
|
|
# Project Structure
|
|
|
|
NoSQLBench is an ambitious project. It has lots of advanced functionality
|
|
built-in that you won't find in any other performance testing tool. That means that
|
|
there is also a lot of code.
|
|
|
|
To make a testing runtime that can be expanded according to different protocols and
|
|
scripting requirements, modularity is absolutely essential. Thus, you will find many
|
|
nodules, each focusing on one specific type of responsibility. The build system
|
|
bundles all the modules together into a cohesive whole using SPI and auto-discovery
|
|
mechanisms at run-time.
|
|
|
|
To make it easier to find the module you are looking for, the following strict
|
|
naming conventions have been adopted:
|
|
|
|
- All packages within a module start with `io.nosqlbench`, followed by the module name,
|
|
with hyphens converted to dots. For example, the 'engine-api' module contains
|
|
packages in `io.nosqlbench.engine.api`.
|
|
- Modules which implement activity types (high-level protocol drivers) are named `driver-...`.
|
|
- Modules which provide procedural data generation support are named `virtdata-...`.
|
|
- Modules which provide core runtime logic are named `engine-...`.
|
|
- Project-wide maven defaults are contained in the mvn-defaults module.
|
|
|
|
All runtime packaging and bundling is done in the `nb` module. It produces a Linux binary
|
|
in target/eb. If you are doing testing and need to have a classpath that includes all th
|
|
bundled modules together, then use the `nb` module as your classpath module.
|
|
|
|
|