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