Commit graph

483 commits

Author SHA1 Message Date
Joakim Frostegård
a28012a898 aquatic cli helpers: upgrade to gumdrop 0.8 2020-08-01 06:43:57 +02:00
Joakim Frostegård
0bebbe4018 http and udp load tests: fix cli program names 2020-08-01 06:43:43 +02:00
Joakim Frostegård
e026a366f7 aquatic ws load test: fix cli program name 2020-08-01 06:42:27 +02:00
Joakim Frostegård
99b098c132 Update TODO 2020-08-01 06:42:17 +02:00
Joakim Frostegård
0eb01a1b0e Update README 2020-08-01 06:10:09 +02:00
Joakim Frostegård
716228c1b1 aquatic_ws: don't run log::error on closing closed connection 2020-08-01 06:09:42 +02:00
Joakim Frostegård
5845393fbb Update TODO 2020-08-01 06:09:25 +02:00
Joakim Frostegård
d44d513879 aquatic ws load test: remove unused stats 2020-08-01 06:01:26 +02:00
Joakim Frostegård
b0d2f67ab6 aquatic ws load test: send answers, count answer responses 2020-08-01 05:57:52 +02:00
Joakim Frostegård
364606a025 aquatic ws load test: make NUM_CONNECTIONS a config field 2020-08-01 04:37:54 +02:00
Joakim Frostegård
55045279ac aquatic ws load test: send offers, count offer responses 2020-08-01 04:27:55 +02:00
Joakim Frostegård
6a9e1f5e72 aquatic_ws: keep valid_until up to date in established connections 2020-08-01 04:27:31 +02:00
Joakim Frostegård
0f072244ab WIP: aquatic_ws: use microseconds for poll timeout, remove unwrap 2020-08-01 03:44:29 +02:00
Joakim Frostegård
a5108f813d WIP: aquatic_ws: add half-crappy load test, fix infinite loop bug 2020-08-01 03:35:00 +02:00
Joakim Frostegård
c7be84a61e aquatic_ws: upgrade to tungstenite 0.11 2020-08-01 00:13:38 +02:00
Joakim Frostegård
809d16919d aquatic_ws: convert ipv4-mapped ipv6 addresses to ipv4 (for state split) 2020-08-01 00:08:18 +02:00
Joakim Frostegård
4067e420c3 udp: response parsing: parse ipv6 peers on action 4 2020-07-31 06:27:05 +02:00
Joakim Frostegård
29f4c4dd7c Merge branch 'udp-ipv6' 2020-07-31 06:10:37 +02:00
Joakim Frostegård
6240cc2106 Update README and TODO 2020-07-31 06:10:14 +02:00
Joakim Frostegård
a3a1d1606b WIP: udp: add ipv6 support
Returning IPv6 peers doesn't really work with UDP. It is not supported by
https://libtorrent.org/udp_tracker_protocol.html. There is a suggestion in
https://web.archive.org/web/20170503181830/http://opentracker.blog.h3q.com/2007/12/28/the-ipv6-situation/
of using action number 4 and returning IPv6 octets just like for IPv4
addresses. Clients seem not to support it very well, but due to a lack of
alternative solutions, it is implemented here
2020-07-31 05:37:58 +02:00
Joakim Frostegård
bdb6aced1c Run cargo update 2020-07-31 01:54:38 +02:00
Joakim Frostegård
ae73ab5b56 Update TODO 2020-07-31 01:54:29 +02:00
Joakim Frostegård
d5de57b45f aquatic_ws: replace flume with crossbeam-channel
This improved performance in aquatic_http
2020-07-31 01:47:45 +02:00
Joakim Frostegård
0d8b6f6cc4 build scripts: disable avx512, since it decreases performance 2020-07-31 01:34:13 +02:00
Joakim Frostegård
225a76e075 Update TODO and README 2020-07-25 20:54:49 +02:00
Joakim Frostegård
997482d46d aquatic_http: urldecode_20_bytes: remove duplicate check
request-from-bytes performance seems to have regressed,
I don't know why (+8%)
2020-07-24 23:06:46 +02:00
Joakim Frostegård
668b480e0f aquatic_http_protocol: optimize urlencode_20_bytes 2020-07-24 22:35:34 +02:00
Joakim Frostegård
cc46c4b72c aquatic_http: write to buf ref in request serialization 2020-07-24 22:27:06 +02:00
Joakim Frostegård
fd68a5f603 aquatic_http: serialize responses to a buffer ref instead of new vec
This improves benchmark performance somewhat and performance
during load testing a bit too.
2020-07-24 21:59:23 +02:00
Joakim Frostegård
228511b3aa aquatic_http: replace flume with crossbeam; clean connections less often 2020-07-24 20:36:46 +02:00
Joakim Frostegård
3802dec79e Update TODO 2020-07-24 20:33:37 +02:00
Joakim Frostegård
b1f998830d Update README 2020-07-24 11:50:47 +02:00
Joakim Frostegård
edfb8e62c5 TODO: reorganize 2020-07-21 23:03:00 +02:00
Joakim Frostegård
f1f708465a remove aquatic_common_tcp crate, move contents into aquatic_http
It doesn't make a lot of sense to make a separate crate for
the few things here. I don't really want tight coupling between
the crates anyway, since it impedes making changes in them
and makes understanding them more difficult.
2020-07-21 23:01:34 +02:00
Joakim Frostegård
32402a4dca criterion announce-response-to-bytes script: ask about saving result 2020-07-21 17:24:17 +02:00
Joakim Frostegård
b01226fddc aquatic http protocol: remove unimplemented Response::from_bytes fn 2020-07-21 17:21:32 +02:00
Joakim Frostegård
c1b2a30803 criterion request-from-bytes script: ask user about saving result 2020-07-21 15:59:32 +02:00
Joakim Frostegård
b3154c5bcf aquatic http protocol: delete obsoleted request-from-path benchmark
Now there is a request-from-bytes benchmark that supersedes
request-from-path.

Final comparison of gains made since first benchmark:

request-from-path
    time:   [540.01 ns 541.51 ns 543.15 ns]
    change: [-90.786% -90.741% -90.696%] (p = 0.00 < 0.01)
    Performance has improved.
2020-07-21 14:25:47 +02:00
Joakim Frostegård
853de523b6 Update README 2020-07-21 11:02:08 +02:00
Joakim Frostegård
05ae0d48b6 README: add aquatic_http and load test section, remove default configs 2020-07-21 10:28:42 +02:00
Joakim Frostegård
773494b17b Update TODO 2020-07-21 02:00:15 +02:00
Joakim Frostegård
fcf1ecf0e8 add some allowed licences to deny.toml 2020-07-21 01:53:43 +02:00
Joakim Frostegård
22316df025 aquatic http protocol: rerun response criterion benchmarks
Regression of about 100%, not clear why, but absolute change
is small. Runtime compared to bendy version is -86.407% anyway.
So save this as baseline without investigating the reason for
the regression.
2020-07-21 01:43:47 +02:00
Joakim Frostegård
0b41e91dde aquatic http protocol: rerun request criterion benchmarks
request-from-path: first run since previous changes
request-from-bytes: speedup possibly due to updated compiler
2020-07-21 01:38:08 +02:00
Joakim Frostegård
52eeda2f2c aquatic_udp_bench: bump indicatif version 2020-07-21 01:03:23 +02:00
Joakim Frostegård
f2db4a43b9 Update lots of dependencies 2020-07-21 00:58:56 +02:00
Joakim Frostegård
27071fa2df aquatic http load test: clean up ununsed struct, config field 2020-07-21 00:45:10 +02:00
Joakim Frostegård
597a2a83d1 aquatic http protocol: add quickcheck test for urlencode/decode 20 bytes 2020-07-21 00:36:34 +02:00
Joakim Frostegård
909f0edce9 aquatic http protocol: move urlencode fns to utils module, clean up 2020-07-21 00:20:10 +02:00
Joakim Frostegård
8fea96bcd2 aquatic http protocol: request parsing: remove hashmap for performance
request-from-bytes:

time:   [720.22 ns 723.34 ns 726.73 ns]
change: [-53.265% -52.884% -52.477%] (p = 0.00 < 0.01)

Performance has improved.
2020-07-21 00:11:53 +02:00