This repository contains v1.0 code of Immux systems and is deprecated in favour of immux/immux.
The master repository for Immux code, currently including:
- ImmuxDB, the immutable database, and
- Foldr, the immutable computing service.
cargo build
cargo run
cargo test
rustup toolchain install nightly # add nightly
cargo install grcov # install grcovsh coverage.shLook at tests/coverage-report/index.html.
There are two sets of benchmarks:
artificialbenchmarks uses datasets generated by programs which focuses on regularity of data;realisticbenchmarks uses realistic datasets and aims to reflect database performance under "real" load.
Currently, we totally have 3 different artificial data set. indexed_set, journal and unindex_set,
you can bench specific data set by running the command:
cargo bench --bench indexed_set -- 100000 100 10 0In the above example, parameters explanation:
- 100000 is
row_count. - 100 is
num_jsons_per_command. - 10 is
report_period. - 0 is
verify_correctness.
Each benchmark under benches/realistic are independent and requires different datasets, which is not pre-loaded in the Git version control because they are large.
Using berka99 as an example:
cd benches/realistic/berka99
./init_data.shcargo bench --bench berka99cargo install flamegraph
cargo bench
# Use sudo if prompted
flamegraph target/release/realistic-SOME_HASHInspect the "flamegraph.svg" in a web browser (it's interactive).
The exact executable name needs to be checked manually at the moment.