No description
Find a file
2022-08-05 18:23:21 +02:00
csv Add a new benchmark 2022-08-05 18:21:06 +02:00
jupyter Add a new benchmark 2022-08-05 18:21:06 +02:00
mknet Add other topologies 2021-12-13 16:24:28 +01:00
png Fix legend position to avoid overlaps 2022-08-05 18:23:21 +02:00
README.md Add a new benchmark 2022-08-05 18:21:06 +02:00
rpc-amplification.R Add a new benchmark 2022-08-05 18:21:06 +02:00
rpc-complexity.R Fix legend position to avoid overlaps 2022-08-05 18:23:21 +02:00

benchmarks

rpc-amplification.R

This benchmark tests how RPC between nodes having non negligible latency will impact the final S3 request latency.

The idea is that multiple communications must be done over the network between nodes of the cluster to answer an S3 request, and some of them are even sequentials. Depending of the chosen algorithms and implementations, the final S3 request latency will vary.

You need to install first R, R development headers, python3, pip3, wget, iproute2 and maybe some other dependencies. Then run:

sudo ./rpc-amplification.R

you can test a different topology with:

MKNET_DC=./mknet/with-vdsl.yml sudo ./rpc-amplification.R

Generated plot for RPC amplification

This benchmark should be fully automated.

rpc-complexity.R

This benchmark validates that the time to complete RPC for a given S3 request is stable when the number of node change. This is not always the case: some distributed protocols send a quadratic number of messages according to the number of nodes.

You need an access to Grid5000. Then import jupyter/rpc-complexity.ipynb in a Grid5000 Jupyter Notebook.

Download all the .csv files in this csv/ folder. And finally run:

./rpc-complexity.R

Generated plot for RPC complexity

This benchmark is not fully automated.