Commit graph

800 commits

Author SHA1 Message Date
Joakim Frostegård
6ee8ed4895 aquatic_common: extract response peers: don't return sender
Seems to fix or at least help with some issues with
real clients being slow to initiate transfers
2020-08-16 23:07:39 +02:00
Joakim Frostegård
b5452c2954 aquatic_http: debug-log responses in full 2020-08-16 21:15:05 +02:00
Joakim Frostegård
25abadb39f
Update cargo-build-and-test.yml 2020-08-13 05:18:55 +02:00
Joakim Frostegård
1d8ee05b19
Create GitHub CI file cargo-build-and-test.yml 2020-08-13 05:16:43 +02:00
Joakim Frostegård
7c8729f256 aquatic_udp: replace some expect calls with anyhow error returns 2020-08-13 04:58:12 +02:00
Joakim Frostegård
f4187f4368 aquatic_udp: use log crate instead of eprintln, add LogLevel to Config 2020-08-13 04:52:50 +02:00
Joakim Frostegård
dd19f32a2a aquatic help output: print short protocol descriptions 2020-08-13 04:34:10 +02:00
Joakim Frostegård
67234744e9 Remove plot_pareto crate 2020-08-13 04:19:00 +02:00
Joakim Frostegård
4e5750346d Update TODO 2020-08-13 04:04:15 +02:00
Joakim Frostegård
88423976c4 aquatic_http, aquatic_ws: add option for printing statistics
statistics are on number of peers per torrent
2020-08-13 03:58:28 +02:00
Joakim Frostegård
23a562c1e5 README: make load test section more concise 2020-08-13 02:24:56 +02:00
Joakim Frostegård
ed6179cc63 Update TODO 2020-08-13 02:09:01 +02:00
Joakim Frostegård
6b3d9e00d8 aquatic_udp: drop unused channel senders & receivers 2020-08-13 02:08:19 +02:00
Joakim Frostegård
b9ab650138 README: don't say http and ws only support single request worker 2020-08-13 01:52:01 +02:00
Joakim Frostegård
2b4cd2dea1 aquatic_http: support multiple request workers 2020-08-13 01:50:18 +02:00
Joakim Frostegård
875eb122c7 aquatic_ws: support multiple request workers 2020-08-13 01:50:01 +02:00
Joakim Frostegård
cf0623e302 aquatic_ws_protocol: fix warning about JsonValue Arbitrary impl
Now it is clearer that only a single value is ever generated
2020-08-13 01:05:20 +02:00
Joakim Frostegård
77ac17dec4 Run cargo update 2020-08-13 01:00:54 +02:00
Joakim Frostegård
0aa781a79c aquatic_ws_load_test: fix unused variable compiler warnings 2020-08-13 00:54:14 +02:00
Joakim Frostegård
67c346f88e aquatic_http_load_test: fix compiler unused variable warnings 2020-08-13 00:53:26 +02:00
Joakim Frostegård
74e1ecf384 aquatic_http_protocol: remove unused utility function "urldecode" 2020-08-13 00:51:56 +02:00
Joakim Frostegård
639b8db072 README: refer to aquatic master executable in instructions 2020-08-13 00:45:19 +02:00
Joakim Frostegård
17844d05e3 Update TODO 2020-08-13 00:18:42 +02:00
Joakim Frostegård
beea0e7d97 add scripts/build-aquatic.sh 2020-08-13 00:15:43 +02:00
Joakim Frostegård
9efc1fc66a add aquatic crate with master executable, refactor cli_helpers 2020-08-13 00:13:01 +02:00
Joakim Frostegård
c69b09ab9c aquatic ws protocol: improve Arbitrary impl for JsonValue 2020-08-12 05:22:37 +02:00
Joakim Frostegård
acc1a0fd74 aquatic_ws: update tests to use simd-json 2020-08-12 05:14:27 +02:00
Joakim Frostegård
8c4d3e5cb9 Update TODO 2020-08-12 04:45:54 +02:00
Joakim Frostegård
6f955235ea aquatic http: log at debug level for unrecognized keys in request parse
"downloaded" and "uploaded" occur all the time since they are
part of the specification
2020-08-12 04:38:47 +02:00
Joakim Frostegård
bc5cd90371 aquatic http: use serde_bencode for deserialization
bendy seems not to manage lack of trailing newline
2020-08-12 04:26:09 +02:00
Joakim Frostegård
7a96313173 aquatic_http_protocol: send host header for scrape requests too 2020-08-12 04:23:26 +02:00
Joakim Frostegård
e6a74c5bfe aquatic http load test: send Host header, downloaded&uploaded keys 2020-08-12 04:08:43 +02:00
Joakim Frostegård
01a3e7795a aquatic ws load test: set default num_connections to 16 2020-08-12 01:38:29 +02:00
Joakim Frostegård
884a2aa67d aquatic ws: deserialize OutMessage properly
Performance seems to be about the same
2020-08-12 01:24:28 +02:00
Joakim Frostegård
dea88020a5 aquatic ws load test: use longer json value when sending answer 2020-08-12 00:52:07 +02:00
Joakim Frostegård
0c168404db aquatic ws load test: add offers_per_request config var, default 10 2020-08-12 00:42:21 +02:00
Joakim Frostegård
cff9b44a7f move RUSTFLAGS gen to own file instead of setting in each script 2020-08-12 00:28:03 +02:00
Joakim Frostegård
b3caa7ab7b Update TODO 2020-08-12 00:20:00 +02:00
Joakim Frostegård
29e3d695a0 Update TODO 2020-08-12 00:13:36 +02:00
Joakim Frostegård
9af4e4663d aquatic_ws: send responses for every event, wake mio for responses 2020-08-11 23:58:00 +02:00
Joakim Frostegård
de1a299f1e aquatic_ws: InMessage::to_ws_message: don't take ownership 2020-08-11 23:24:46 +02:00
Joakim Frostegård
63e5fe11c9 aquatic http protocol: delete obsoleted bench_request_from_path 2020-08-11 23:06:05 +02:00
Joakim Frostegård
f2d697011b Don't use target-cpu native etc in scripts/test.sh 2020-08-11 23:04:28 +02:00
Joakim Frostegård
56bc028a44 aquatic_ws: OutMessage and InMessage simd-json fixes
* use simd-json in OutMessage deserialization
* take ownership in InMessage deserialization to avoid bugs
* Update benchmark results, benchmark was broken
* Compile simd-json even if simd is not on, so that rust-analyzer
  works
2020-08-11 23:02:19 +02:00
Joakim Frostegård
8dfe524421 Update TODO 2020-08-11 06:45:47 +02:00
Joakim Frostegård
5d40954936 aquatic_ws: deserialize InMessage with simd-json for performance
From 18% to 13% CPU time during load test run.

Criterion benchmark of deserialization got about 90% improvement.
2020-08-11 06:32:51 +02:00
Joakim Frostegård
539cf03f93 Update README (aquatic http load test section) 2020-08-11 06:31:09 +02:00
Joakim Frostegård
99724c7e5d aquatic_ws: add bench for InMessage::from_ws_message, take ws msg by ref 2020-08-11 05:36:29 +02:00
Joakim Frostegård
74a538963f aquatic_http_protocol: urlencode/urldecode Request.key
About 11% performance regression for Request::from_bytes
2020-08-10 04:37:01 +02:00
Joakim Frostegård
0a0b57a9e8 Update TODO 2020-08-10 03:57:16 +02:00