Commit graph

48 commits

Author SHA1 Message Date
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
d20e57d861 ws: use idiomatic folder structure 2021-11-27 18:19:43 +01:00
Joakim Frostegård
473276cd46 Switch to rust edition 2021 2021-11-24 18:56:26 +01:00
Joakim Frostegård
fee3c9ca4e Update mio to version 0.8 2021-11-19 03:01:03 +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
af8b776937 udp, ws: auto-enable cpu-pinning feature when running with glommio 2021-11-11 20:54:40 +01:00
Joakim Frostegård
4f8328b70a Feature-gate CPU pinning, since it only works on Linux 2021-11-09 11:40:16 +01:00
Joakim Frostegård
b54694bbc0 aquatic_ws: improve cpu pinning 2021-11-07 11:46:48 +01:00
Joakim Frostegård
2bed6ccdc5 WIP: ws: split into features, other fixes 2021-11-05 13:25:19 +01:00
Joakim Frostegård
465cf5920d WIP: ws: put back mio implementation 2021-11-05 12:42:55 +01:00
Joakim Frostegård
b8073e4bd1 Replace HashMap and IndexMap with indexmap_amortized
This will hopefully get down latency.
2021-11-03 10:35:29 +01:00
Joakim Frostegård
446fd0b1f4 aquatic_ws: use signals for access list updates 2021-11-02 23:29:04 +01:00
Joakim Frostegård
dcf86d2df2 aquatic_ws: remove unused statistics code and histogram dependency 2021-11-01 23:57:44 +01:00
Joakim Frostegård
24bfaf67c0 aquatic_ws: rewrite to use glommio 2021-11-01 19:08:00 +01:00
Joakim Frostegård
fae0692f90 Upgrade tungstenite 2021-08-16 23:22:56 +02:00
Joakim Frostegård
d172fc4f8c Upgrade socket2 2021-08-15 23:32:59 +02:00
Joakim Frostegård
32541c5c15 Upgrade hashbrown 2021-08-15 22:29:09 +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
e1260d14de Update rand to 0.8 and rand_distr to 0.4 2021-02-10 18:36:23 +01:00
Joakim Frostegård
bbc351bb59 Update privdrop to 0.5 2021-02-10 18:36:23 +01:00
Joakim Frostegård
ac6eefc30f Update crossbeam-channel to 0.5 2021-02-10 18:36:23 +01: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
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
8d58f8bb70 init logger in aquatic_cli_helpers crate 2020-08-02 21:21:58 +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
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
f2db4a43b9 Update lots of dependencies 2020-07-21 00:58:56 +02:00
Joakim Frostegård
2f13e1e1a8 rename crate "cli_helpers" to "aquatic_cli_helpers" 2020-05-25 19:27:22 +02:00
Joakim Frostegård
1ec4745f45 aquatic_ws: use socket2 instead of net2 2020-05-25 18:24:36 +02:00
Joakim Frostegård
bc8916dce4 aquatic_ws: add logging with level configured by config file 2020-05-23 20:16:56 +02:00
Joakim Frostegård
f3bdb6bc2a aquatic_ws: privilege dropping; cli_helpers: show error context 2020-05-23 17:02:52 +02:00
Joakim Frostegård
7430c23ccc aquatic_ws: add simple_logger for debugging, need better solution 2020-05-23 14:53:29 +02:00
Joakim Frostegård
0f6d6d4b21 aquatic_ws: use log crate for debug error messages 2020-05-23 14:24:26 +02:00
Joakim Frostegård
526faa9aab cli_helpers: use anyhow in app fn; aquatic_ws: reorganize error handling 2020-05-23 14:05:50 +02:00
Joakim Frostegård
0bcfffb2bd aquatic_ws: create HandshakeMachine from ConnectionStage 2020-05-13 19:17:33 +02:00
Joakim Frostegård
de9a32840f WIP: aquatic_ws: start work on wss (ws with tls) 2020-05-12 18:48:50 +02:00
Joakim Frostegård
761952513f remove unused dependencies from aquatic_ws; run cargo update 2020-05-11 23:24:50 +02:00
Joakim Frostegård
5c83af9f88 Move some code from aquatic_udp into aquatic_common 2020-05-11 17:06:37 +02:00
Joakim Frostegård
1b8d74e26d rename aquatic to aquatic_udp, same for bench and load test crates 2020-05-11 16:55:46 +02:00
Joakim Frostegård
5b58db90e3 aquatic_ws: pass on offers to other peers; minor fixes 2020-05-08 21:05:46 +02:00
Joakim Frostegård
4d0c3d309a aquatic_ws: add tungstenite::Message encode and decode, not tested 2020-05-07 19:34:28 +02:00
Joakim Frostegård
cf75a07a7e WIP: aquatic_ws: start work on data structures, data flow 2020-05-07 16:49:28 +02:00
Joakim Frostegård
0d835452c1 WIP: aquatic_ws: start trying to understand and document protocol 2020-05-07 13:34:29 +02:00
Joakim Frostegård
1080652282 WIP: start work on webtorrent support 2020-05-07 01:08:29 +02:00