Added some fixes and requested touchups from artifact review

This commit is contained in:
onyinyang 2022-10-20 00:43:31 -04:00
parent 9f0fb0bbe1
commit 2818ce67f4
No known key found for this signature in database
GPG Key ID: 156A6435430C2036
7 changed files with 61 additions and 49 deletions

View File

@ -8,8 +8,6 @@ ADD Parsing-results ./Parsing-results
ADD README.md README.md ADD README.md README.md
RUN apt update -y RUN apt update -y
RUN apt install -y python3 python3-pip RUN apt install -y python3 python3-pip
RUN pip3 install pandas RUN pip3 install -r Parsing-results/requirements.txt
RUN pip3 install numpy
RUN pip3 install matplotlib
RUN cargo build --release RUN cargo build --release
ENV SHELL=/bin/bash ENV SHELL=/bin/bash

View File

@ -11,7 +11,7 @@ def main():
"Redeem Invitation", "Check Blockage 5%", "Check Blockage 50%", "Check Blockage 100%", "Blockage Migration"] "Redeem Invitation", "Check Blockage 5%", "Check Blockage 50%", "Check Blockage 100%", "Blockage Migration"]
files = ["trust_levels.csv", "trust_promo.csv", "trust_mig.csv", "level2.csv", files = ["trust_levels.csv", "trust_promo.csv", "trust_mig.csv", "level2.csv",
"invitations.csv", "redeem_invites.csv","check_blockage5.csv", "invitations.csv", "redeem_invites.csv","check_blockage5.csv",
"check_blockage50.csv","check_blockage100.csv","check_blockage50.csv"] "check_blockage50.csv","check_blockage100.csv","blockage_migration50.csv"]
csv_cols = ["RequestS", "RequestT","Rtstdev","ResponseS","ResponseT", csv_cols = ["RequestS", "RequestT","Rtstdev","ResponseS","ResponseT",
"ReTstdev", "ResponseHT", "RHTstdev"] "ReTstdev", "ResponseHT", "RHTstdev"]
perf_columns = ["Protocol","Request Size", "Request Time", "sigma", perf_columns = ["Protocol","Request Size", "Request Time", "sigma",

View File

@ -23,7 +23,7 @@ def main():
df.ResponseT+df.ReTstdev, alpha=0.5, edgecolor='#CC4F1B', df.ResponseT+df.ReTstdev, alpha=0.5, edgecolor='#CC4F1B',
facecolor='#FF9848') facecolor='#FF9848')
plt.tight_layout(pad=1) plt.tight_layout(pad=1)
plt.savefig("StandardCheck.pdf") plt.savefig("Blockage-response-time.pdf")
plt.close('all') plt.close('all')
def set_plot_options(): def set_plot_options():

View File

@ -0,0 +1,15 @@
contourpy==1.0.5
cycler==0.11.0
fonttools==4.37.4
kiwisolver==1.4.4
matplotlib==3.6.1
mercurial==5.6.1
numpy==1.23.4
packaging==21.3
pandas==1.5.0
Pillow==9.2.0
pyparsing==3.0.9
python-dateutil==2.8.2
pytz==2022.4
six==1.16.0

View File

@ -21,24 +21,24 @@ Where `TESTNAME > LOGFILE` is one of:
``` ```
stats_test_trust_levels > trust_levels.log stats_test_trust_levels > trust_levels.log
stats_test_invitations > invitations.log stats_test_invitations > invitations.log
stats_test_percent_blockage_migration_05 > check_blockage05.log stats_test_percent_blockage_migration_05 > blockage_migration05.log
stats_test_percent_blockage_migration_010 > check_blockage010.log stats_test_percent_blockage_migration_010 > blockage_migration010.log
stats_test_percent_blockage_migration_20 > check_blockage20.log stats_test_percent_blockage_migration_20 > blockage_migration20.log
stats_test_percent_blockage_migration_25 > check_blockage25.log stats_test_percent_blockage_migration_25 > blockage_migration25.log
stats_test_percent_blockage_migration_35 > check_blockage35.log stats_test_percent_blockage_migration_35 > blockage_migration35.log
stats_test_percent_blockage_migration_40 > check_blockage40.log stats_test_percent_blockage_migration_40 > blockage_migration40.log
stats_test_percent_blockage_migration_45 > check_blockage45.log stats_test_percent_blockage_migration_45 > blockage_migration45.log
stats_test_percent_blockage_migration_50 > check_blockage50.log stats_test_percent_blockage_migration_50 > blockage_migration50.log
stats_test_percent_blockage_migration_55 > check_blockage55.log stats_test_percent_blockage_migration_55 > blockage_migration55.log
stats_test_percent_blockage_migration_60 > check_blockage60.log stats_test_percent_blockage_migration_60 > blockage_migration60.log
stats_test_percent_blockage_migration_65 > check_blockage65.log stats_test_percent_blockage_migration_65 > blockage_migration65.log
stats_test_percent_blockage_migration_70 > check_blockage70.log stats_test_percent_blockage_migration_70 > blockage_migration70.log
stats_test_percent_blockage_migration_75 > check_blockage75.log stats_test_percent_blockage_migration_75 > blockage_migration75.log
stats_test_percent_blockage_migration_80 > check_blockage80.log stats_test_percent_blockage_migration_80 > blockage_migration80.log
stats_test_percent_blockage_migration_85 > check_blockage85.log stats_test_percent_blockage_migration_85 > blockage_migration85.log
stats_test_percent_blockage_migration_90 > check_blockage90.log stats_test_percent_blockage_migration_90 > blockage_migration90.log
stats_test_percent_blockage_migration_95 > check_blockage95.log stats_test_percent_blockage_migration_95 > blockage_migration95.log
stats_test_percent_blockage_migration_100 > check_blockage100.log stats_test_percent_blockage_migration_100 > blockage_migration100.log
``` ```
Each test outputs results to the specified log file and takes approximately 20-30 hours to run. However, this can be improved Each test outputs results to the specified log file and takes approximately 20-30 hours to run. However, this can be improved
@ -53,7 +53,7 @@ flag run:
We have also included the scripts we used to parse the output from each of the Lox tests in the `Parsing-results` directory. For convenience, copy all of the output log files to the `Parsing-results` directory and run `./parse_data.sh`. This is a python script that uses Python 3.8+ and depends on `numpy`, `matplotlib`, and `pandas` which can be installed with `pip3`. We have also included the scripts we used to parse the output from each of the Lox tests in the `Parsing-results` directory. For convenience, copy all of the output log files to the `Parsing-results` directory and run `./parse_data.sh`. This is a python script that uses Python 3.8+ and depends on `numpy`, `matplotlib`, and `pandas` which can be installed with `pip3`.
To run all tests in fast mode, output the results to the `Parsing-results` directory, and generate the table (`performance_stats.csv`, our Table 4) and graphs (`StandardCheck.pdf` and `core-users.pdf`, our Figures 1 and 2) used in our paper, run: To run all tests in fast mode, output the results to the `Parsing-results` directory, and generate the table (`performance_stats.csv`, our Table 4) and graphs (`Blockage-response-time.pdf` and `core-users.pdf`, our Figures 1 and 2) used in our paper, run:
``` ```
./run_tests_fast ./run_tests_fast

View File

@ -2,25 +2,25 @@
cargo test --release --features=fast -- --nocapture stats_test_trust_levels > trust_levels.log cargo test --release --features=fast -- --nocapture stats_test_trust_levels > trust_levels.log
cargo test --release --features=fast -- --nocapture stats_test_invitations > invitations.log cargo test --release --features=fast -- --nocapture stats_test_invitations > invitations.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_05 > check_blockage05.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_05 > blockage_migration05.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_010 > check_blockage010.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_010 > blockage_migration010.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_20 > check_blockage20.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_20 > blockage_migration20.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_25 > check_blockage25.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_25 > blockage_migration25.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_30 > check_blockage30.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_30 > blockage_migration30.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_35 > check_blockage35.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_35 > blockage_migration35.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_40 > check_blockage40.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_40 > blockage_migration40.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_45 > check_blockage45.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_45 > blockage_migration45.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_50 > check_blockage50.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_50 > blockage_migration50.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_55 > check_blockage55.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_55 > blockage_migration55.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_60 > check_blockage60.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_60 > blockage_migration60.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_65 > check_blockage65.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_65 > blockage_migration65.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_70 > check_blockage70.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_70 > blockage_migration70.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_75 > check_blockage75.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_75 > blockage_migration75.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_80 > check_blockage80.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_80 > blockage_migration80.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_85 > check_blockage85.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_85 > blockage_migration85.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_90 > check_blockage90.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_90 > blockage_migration90.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_95 > check_blockage95.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_95 > blockage_migration95.log
cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_100 > check_blockage100.log cargo test --release --features=fast -- --nocapture stats_test_percent_blockage_migration_100 > blockage_migration100.log
echo "Completed all tests, now parsing results" echo "Completed all tests, now parsing results"
mv *.log Parsing-results mv *.log Parsing-results
cd Parsing-results cd Parsing-results

View File

@ -1686,16 +1686,15 @@ fn print_stats_test_results(
resp_handle_time: Vec<f64>, resp_handle_time: Vec<f64>,
) { ) {
let mean_req_size = mean(&req_size); let mean_req_size = mean(&req_size);
let req_std_dev = standard_deviation(&req_size, Some(mean_req_size)); let req_std_dev = if &req_size.len() > &1 {standard_deviation(&req_size, Some(mean_req_size))} else {0.0};
let mean_req_time = mean(&req_time); let mean_req_time = mean(&req_time);
let req_time_std_dev = standard_deviation(&req_time, Some(mean_req_time)); let req_time_std_dev = if &req_time.len() > &1 {standard_deviation(&req_time, Some(mean_req_time))} else {0.0};
let mean_resp_size = mean(&resp_size); let mean_resp_size = mean(&resp_size);
let resp_std_dev = standard_deviation(&resp_size, Some(mean_resp_size)); let resp_std_dev = if &resp_size.len() > &1 {standard_deviation(&resp_size, Some(mean_resp_size))} else {0.0};
let mean_resp_time = mean(&resp_time); let mean_resp_time = mean(&resp_time);
let resp_time_std_dev = standard_deviation(&resp_time, Some(mean_resp_time)); let resp_time_std_dev = if &resp_time.len() > &1 {standard_deviation(&resp_time, Some(mean_resp_time))} else {0.0};
let mean_resp_handle_time = mean(&resp_handle_time); let mean_resp_handle_time = mean(&resp_handle_time);
let resp_handle_time_std_dev = let resp_handle_time_std_dev = if &resp_handle_time.len() > &1 {standard_deviation(&resp_handle_time, Some(mean_resp_handle_time))} else {0.0};
standard_deviation(&resp_handle_time, Some(mean_resp_handle_time));
println!("Average request size = {} bytes", mean_req_size); println!("Average request size = {} bytes", mean_req_size);
println!("Request size standard deviation = {} bytes", req_std_dev); println!("Request size standard deviation = {} bytes", req_std_dev);