https://github.com/slmt/auto-bencher
Auto benchmarking tool for ElaSQL project (prototype)
https://github.com/slmt/auto-bencher
Last synced: 2 months ago
JSON representation
Auto benchmarking tool for ElaSQL project (prototype)
- Host: GitHub
- URL: https://github.com/slmt/auto-bencher
- Owner: SLMT
- License: mit
- Created: 2019-05-05T14:46:01.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-13T20:27:12.000Z (almost 3 years ago)
- Last Synced: 2025-08-25T11:59:41.658Z (9 months ago)
- Language: Rust
- Homepage:
- Size: 946 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Auto Bencher
A deployment and benchmarking tool that aims to benchmark [ElaSQL](https://github.com/elasql/elasql) with [ElaSQL-Bench](https://github.com/elasql/elasqlbench) on a cluster.
## Prerequisite
### Environments
- Operating System: UNIX-based OS
- Have been tested on CentOS 7
- An account that can login to all the machines in the cluster with the same username and without entering password via SSH
- In other words, the system on every machine should have a user with same username.
- Logging in without using a password can be achieved by `ssh-copy-id` (see [this](https://linuxhint.com/use-ssh-copy-id-command/) for more information).
- Rust Development Environment
- Only need to be installed on the machine where this tool runs.
- Since this tool is written in Rust, we need its package manager to setup dependency and compile the program.
- See [this page](https://www.rust-lang.org/tools/install) for how to install Rust environment.
- Java Development Kit (JDK) 8
- We just need a `tar.gz` file. No need to be installed on the machines. Auto Bencher will deploy the given JDK on the machines automatically.
### Knowledge
All the following knowledge can be learned from [Getting Started Guide](https://github.com/elasql/documentation/blob/master/doc/getting_started.pdf) of ElaSQL.
- Knowing how to package [ElaSQL-Bench](https://github.com/elasql/elasqlbench) into runnable JARs.
- Specifically, we need a `server.jar` for servers and a `client.jar` for clients.
- Knowing how to configure [ElaSQL-Bench](https://github.com/elasql/elasqlbench).
## Usage Guide
We have prepared [a comprehensive guide](doc/usage-guide.pdf) for any one who want to learn how to use Auto Bencher. Check the document about the usage.
## Available Commands
- `cargo run init-env`
- Initialzes the testing environment on all the machines.
- `cargo run load [db name] [parameter file]`
- Loads a testbed with the given parameters in `[parameter file]` with a assigned `[db name]`.
- `cargo run bench [db name] [parameter file]`
- Benchmarks ElaSQL with the given parameters in `[parameter file]` and the testbed loaded in `[db name]` DB.
- `cargo run all-exec [command]`
- Executes the given command `[command]` on all the machines.
- `cargo run pull [pattern]`
- Pulls the files with the names that match `[pattern]` on all the machines.
## Debugging Messages
To enable debugging message for Auto Bencher, set environment variable `RUST_LOG` with `auto_bencher=DEBUG`.
For example, to check the debugging message when benchmarking:
```
> RUST_LOG=auto_bencher=DEBUG cargo run bench my-db my-parameter-file
```