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 grcov
sh coverage.sh
Look at tests/coverage-report/index.html
.
There are two sets of benchmarks:
artificial
benchmarks uses datasets generated by programs which focuses on regularity of data;realistic
benchmarks 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 0
In 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.sh
cargo bench --bench berka99
cargo install flamegraph
cargo bench
# Use sudo if prompted
flamegraph target/release/realistic-SOME_HASH
Inspect the "flamegraph.svg" in a web browser (it's interactive).
The exact executable name needs to be checked manually at the moment.