Commit graph

577 commits

Author SHA1 Message Date
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
Joakim Frostegård
1a3ab54b3f aquatic_ws: when removing connection, reregister from poll 2020-08-10 03:51:08 +02:00
Joakim Frostegård
fbcd5aa7c9 Update TODO 2020-08-10 03:18:06 +02:00
Joakim Frostegård
cce7bd7150 aquatic_http: send responses for each event, use mio poll waker
This means
* less fluctuation in number of responses send per second
* longer poll timeouts can be used since poll is woken when
  responses are available for sending
* drain-like method used to fetch responses from response
  channel, meaning responses added while iterating won't
  be processed
2020-08-10 02:53:15 +02:00
Joakim Frostegård
1d2dfe3fe1 aquatic_ws_protocol: add comment OutMessage::from_ws_message 2020-08-09 04:27:06 +02:00
Joakim Frostegård
4bffecc345 aquatic_http_load_test: deregister socket before removing it 2020-08-09 04:26:08 +02:00
Joakim Frostegård
72183d7fc2 Update TODO 2020-08-09 04:25:29 +02:00
Joakim Frostegård
d9282defbc aquatic_http: deregister connections before removing them 2020-08-09 02:30:40 +02:00
Joakim Frostegård
1b2b4f0eb5 aquatic_http_protocol: add test for Request serde, fix Request.write bug 2020-08-09 01:19:47 +02:00
Joakim Frostegård
2893fffd20 aquatic_http: use const LISTENER_TOKEN for clarity 2020-08-09 00:44:39 +02:00
Joakim Frostegård
0a23b62bd5 aquatic ws load test: gen random PeerId per connection
Necessary for multiple workers
2020-08-09 00:42:09 +02:00
Joakim Frostegård
2d3761fee2 impl Copy for LogLevel, remove some cloning 2020-08-09 00:27:05 +02:00
Joakim Frostegård
0637f83daa aquatic_ws: rewrite failing serialization, add tests
Use different approach to action fields and info_hash vec, fixing
failing tests
2020-08-09 00:26:26 +02:00
Joakim Frostegård
c8512e1cdf Update TODO 2020-08-07 01:15:04 +02:00
Joakim Frostegård
ea8b37b4d5 aquatic_ws_protocol: add quickcheck tests for message serde 2020-08-06 23:34:33 +02:00
Joakim Frostegård
cc7fff7d6c Update TODO 2020-08-06 23:34:29 +02:00
Joakim Frostegård
94bc33ea72 Update TODO 2020-08-03 07:27:55 +02:00
Joakim Frostegård
6f618bb013 aquatic_ws_load_test: get answer sending to work with wt-tracker 2020-08-03 07:02:42 +02:00
Joakim Frostegård
01fdf40a02 aquatic_ws_load_test: send num_want and better offer fake type
This means wt-tracker starts sending offers
2020-08-03 06:52:29 +02:00
Joakim Frostegård
aee97b77a1 Update TODO 2020-08-03 05:49:22 +02:00
Joakim Frostegård
e916780438 aquatic_ws_load_test: for single connection, use same PeerId 2020-08-03 05:27:40 +02:00
Joakim Frostegård
7733ee98ca Update TODO 2020-08-03 05:15:48 +02:00
Joakim Frostegård
9f445c7c03 aquatic_ws_load_test: fix multiple issues with implementation 2020-08-03 05:15:24 +02:00
Joakim Frostegård
5523c87634 Update TODO 2020-08-03 00:23:25 +02:00