Commit graph

43 commits

Author SHA1 Message Date
Joakim Frostegård
2e6d5acae2 Update simd-json to version 0.6.0 2022-07-18 18:47:28 +02:00
Joakim Frostegård
123193d032 Update simd-json version from 0.4 to 0.5 2022-06-07 13:56:26 +02:00
Joakim Frostegård
d78b0fa31e Bump version to 0.2.0 for all aquatic crates 2022-03-26 11:39:37 +01:00
Joakim Frostegård
90437e23bb Cargo.toml files: add readme keys, remove some exclude keys 2022-03-26 11:39:04 +01:00
Joakim Frostegård
a9f1aeb70c Add crate keywords, update descriptions 2022-03-20 20:41:56 +01:00
Joakim Frostegård
8abdf702b7 Update tungstenite and async-tungstenite to 0.17 2022-02-19 14:48:57 +01:00
Joakim Frostegård
4073a1b8be Update hashbrown to 0.12 2022-02-19 14:32:31 +01:00
Joakim Frostegård
222fac0e09
Improve aquatic_ws glommio implementation, fixing memory leak (#37)
* ws: upgrade tungstenite and async-tungstenite to 0.16

* ws: use latest glommio

* ws: glommio: add config key connection_cleaning_interval

* ws: glommio: limit socket worker local channel size

Quick fix for memory leak

* ws: glommio: use prioritized task queue for sending responses

This is a start on trying to fix the large amount of responses
being dropped due to local response channel being full

* scripts/watch-threads.sh: don't highlight changes

* ws: glommio: await when sending responses from shared to local

* ws: glommio: limit ws message queue; add lots of ::log::warn for debug

* ws: glommio: add timeout to send_out_message, maybe pinpointing issue

* ws: glommio: clean up, tweak channel sizes; update TODO

* ws: glommio: set send timeout to 10s, add backpressure, accept drops

* ws: glommio: yield if needed in ConnectionReader backoff loop

* ws load test: add config key connection_creation_interval_ms

* ws load test: don't print "run connection" when opening connection

* ws load test: rename config num_connection to num_connections_per_worker

* ws load test config: improve order of code in file

* ws: glommio: info-level log for socket send timeout

* ws glommio: clean idle connections, improve cleaning code

* ws: glommio: make ConnectionWriter::send_error_response fallible; fmt

* ws: glommio: store JoinHandle in conn reference, cancel task on clean

* add scripts/heaptrack.sh

* Update TODO
2021-12-11 18:50:05 +01:00
Joakim Frostegård
473276cd46 Switch to rust edition 2021 2021-11-24 18:56:26 +01:00
Joakim Frostegård
028a366ce5 Don't unnecessarily constrain crate versions in Cargo.toml files 2021-11-19 02:45:53 +01:00
Joakim Frostegård
7ae7442284 aquatic_ws_protocol: clean up, run rustfmt 2021-11-01 21:36:07 +01:00
Joakim Frostegård
77c9ca03e8 aquatic_ws_protocol: attempt to parse ws message from binary as well 2021-11-01 19:42:52 +01:00
Joakim Frostegård
6624df1e44 aquatic_ws_protocol: add documentation (as comments) 2021-10-16 01:53:53 +02:00
Joakim Frostegård
71c43aca47 aquatic_ws_protocol: refactor, moving code into submodules 2021-10-16 01:46:32 +02:00
Joakim Frostegård
7c833958d8 aquatic_ws: add serde-rename for ErrorResponse.failure_reason 2021-10-16 01:20:09 +02:00
Joakim Frostegård
1d5eb0dff9 aquatic_ws: add ErrorResponse, send it when info hash is not allowed 2021-10-16 01:18:23 +02:00
Joakim Frostegård
fae0692f90 Upgrade tungstenite 2021-08-16 23:22:56 +02:00
Joakim Frostegård
1028dcc709 Upgrade simd-json 2021-08-15 23:27:17 +02:00
Joakim Frostegård
32541c5c15 Upgrade hashbrown 2021-08-15 22:29:09 +02:00
Joakim Frostegård
d0e716f80b Run rustfmt, clean up aquatic_http_protocol/Cargo.toml 2021-08-15 22:26:11 +02:00
Joakim Frostegård
f728669401 Update tungstenite to version 0.13 2021-02-10 18:36:23 +01:00
Joakim Frostegård
405df71371 Upgrade tungstenite to version 0.12 2021-02-10 18:36:23 +01:00
Joakim Frostegård
f9626ade57 Upgrade quickcheck to 1.0, adjust code, optimizing a slow test 2021-02-10 18:36:23 +01:00
Joakim Frostegård
56980ab303 aquatic_http_protocol and ws_protocol: exclude "target" from crates 2020-09-13 17:42:31 +02:00
Joakim Frostegård
fe11ed138a Use (patched) crates.io deps for crates, add some package metadata 2020-09-13 17:30:26 +02:00
Joakim Frostegård
66e9882f48 Update dependencies 2020-09-10 23:23:21 +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
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
884a2aa67d aquatic ws: deserialize OutMessage properly
Performance seems to be about the same
2020-08-12 01:24:28 +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
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
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
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
1d2dfe3fe1 aquatic_ws_protocol: add comment OutMessage::from_ws_message 2020-08-09 04:27:06 +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
ea8b37b4d5 aquatic_ws_protocol: add quickcheck tests for message serde 2020-08-06 23:34:33 +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
9f445c7c03 aquatic_ws_load_test: fix multiple issues with implementation 2020-08-03 05:15:24 +02:00
Joakim Frostegård
561cc3db55 fix more clippy warnings 2020-08-02 00:36:56 +02:00
Joakim Frostegård
6f2dc6a510 aquatic_ws: add InMessage::from_ws_message, use in load test 2020-08-01 22:45:19 +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
a5108f813d WIP: aquatic_ws: add half-crappy load test, fix infinite loop bug 2020-08-01 03:35:00 +02:00