-
I would like to benchmark Khepri against Mnesia and Khepri releases among themselves and against the Any advice on which tool to use to do that? I'm considering Benchee, but that alone won't work because a Rebar3- or Mix-based project can't depend on several versions of the same dependency. Therefore, I would need to aggregate the results of indedepent project (one per Khepri version). |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
I just discovered Benchee can save results and load them into a later run to compare two branches. Perhaps I can design a benchmark where we can switch between Mnesia and Khepri and configure the version of Khepri. This way, we run the same benchmark multiple times: once with Mnesia, the rest with a specific release of Khepri, then a last run with the |
Beta Was this translation helpful? Give feedback.
-
I prepared a micro-benchmarking tool, based on erlperf, to compare Khepri and Mnesia. The tool is available in a separate repository: https://github.com/rabbitmq/khepri-benchmark. It compares a disk-copy table in Mnesia (with its default configuration) to Khepri using both safe settings (default) and unsafe settings ( The benchmark runs automatically in GitHub Actions and an HTML report is published to https://rabbitmq.github.io/khepri-benchmark/. The performance in GitHub Actions does not reflect what we get with more CPU cores though. |
Beta Was this translation helpful? Give feedback.
-
Note that the current framework doesn't compare different versions of Khepri and/or Ra. This would be nice to have, but this tool is a good start. Another thing missing from this benchmark is that it doesn't show the latency. |
Beta Was this translation helpful? Give feedback.
I prepared a micro-benchmarking tool, based on erlperf, to compare Khepri and Mnesia.
The tool is available in a separate repository: https://github.com/rabbitmq/khepri-benchmark.
It compares a disk-copy table in Mnesia (with its default configuration) to Khepri using both safe settings (default) and unsafe settings (
fsync(2)
disabled). The benchmark tries insertions and deletes with concurrency gradually increasing from 1 to 200 parallel workers. The same benchmark is executed with a single node and a 3-node cluster (running on the same host though).The benchmark runs automatically in GitHub Actions and an HTML report is published to https://rabbitmq.github.io/khepri-benchmark/. The per…