Status
This project is now superseded by the nosqlbench.io project. The entire source based here has been imported and restructured in that project, along with the upstream virtual data set project. This should make it easier for contributors and maintainers.
This project is being put in archival mode to avoid users continuing to work on unmaintained code. The last artifacts under this name on Maven central will be the last ones produced by this lineage of code.
Please go to nosqlbench.io project at https://github.com/nosqlbench/ to get started!
This is in active development. Collaborators are welcome. However, there is still work to be done to groom the slope for new users.
Documentation Site
For docs, please visit the EngineBlock Docs Site.
EngineBlock
This project aims to provide a missing power tool in the test tooling arsenal.
The design goals:
- 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.
- 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.
- Minimize the amount of effort required to get empirical results from a test cycle. For this, metrics reporting is baked in.
In short, Engine Block 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 Engine Block project started as a branch of test client. It has since evolved to be more generic.
License
EngineBlock is licensed under the Apache Public License 2.0
Thanks
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.