Joakim Frostegård
67c4c02bbd
aquatic_ws: mio: replace native_tls with rustls, rewrite connection state logic completely ( #38 )
...
* ws: mio: use rustls, rewrite Connection logic
* ws: mio: improve poll register/deregister handling
* ws: mio: work on type-level poll registry safety
* ws: mio: use stronger poll registry type-level guarantees
* ws: mio: fix stream reading
* ws: clean up, run fmt
* ws: mio: don't require registered connection for writing, improve docs
* ws: mio: add Connection::get_meta(), make Connection::meta private
* ws: mio: add ConnectionMap struct; remove utils.rs
* ws: mio: move token counter into ConnectionMap, improve docs
* ws: mio: connection: move Connection struct above state structs
* Update TODO
* ws: fix build errors
* ws: upgrade to tungstenite 0.16
* ws load test: don't panic on Close message; print shorter errors
* ws: fix socket worker bugs, add log statements
* ws: mio: wait for write availability if would block for ws messages
* Update README
* ws: mio: limit channels & queues; read 1 message only; other fixes
* ws: mio: send local responses each event; decrease channel size
* Update TODO
* ws: mio: limit ws send queue, fixing memory leak; limit pending messages
Also change some log output levels and run rustfmt
* Update TODO
* Update TODO
2021-12-16 16:09:36 +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
e1bffae42c
Merge pull request #36 from greatest-ape/fixes-2021-11-29
...
small udp refactor, update README and TODO
2021-11-30 09:37:22 +01:00
Joakim Frostegård
7892e6f508
udp: move TorrentMap and related types to workers/request.rs
2021-11-29 21:03:47 +01:00
Joakim Frostegård
f14ab8e351
Update TODO
2021-11-29 11:04:52 +01:00
Joakim Frostegård
8bd32fdb05
README: fix reference to config.rs files
2021-11-29 11:04:34 +01:00
Joakim Frostegård
cf595f53e8
Merge pull request #35 from greatest-ape/fixes-2021-11-28
...
udp and udp load test improvements, run cargo fmt
2021-11-29 09:37:15 +01:00
Joakim Frostegård
9d8f9d8f7c
udp load test: remove ThreadId newtype, use poll token 0 in all workers
2021-11-28 22:33:55 +01:00
Joakim Frostegård
f068d86e0d
udp load test: set MAX_PACKET_SIZE to 8192
2021-11-28 22:30:22 +01:00
Joakim Frostegård
e972903451
udp load test: move network.rs and handler.rs into new worker module
2021-11-28 22:28:50 +01:00
Joakim Frostegård
411716e333
udo load test: config: rename "handler" to "requests", refactor
2021-11-28 22:18:33 +01:00
Joakim Frostegård
dd573cdb30
Run cargo fmt
2021-11-28 22:11:21 +01:00
Joakim Frostegård
125d3c49d6
udp: config: rename channel_recv_timeout_ms and move to root, add docs
2021-11-28 22:10:29 +01:00
Joakim Frostegård
2fe57b9f67
udp: add config key worker_channel_size to enable bounded channels
2021-11-28 21:59:11 +01:00
Joakim Frostegård
abea88dbf8
Merge pull request #34 from greatest-ape/update-udp-benchmark
...
Add new udp benchmarks, update README
2021-11-28 13:25:13 +01:00
Joakim Frostegård
adda2bd282
Update TODO
2021-11-28 13:13:15 +01:00
Joakim Frostegård
8dc0ba34ad
Add new udp benchmarks, update README
2021-11-28 12:50:15 +01:00
Joakim Frostegård
f81244287b
Merge pull request #33 from greatest-ape/udp-load-test-fixes
...
aquatic_udp_load_test improvements
2021-11-28 11:43:34 +01:00
Joakim Frostegård
53b46d24f2
udp load test: set default additional_request_probability to 0.5
2021-11-28 03:51:59 +01:00
Joakim Frostegård
14474fb5e3
udp load test: improve statistics printing code
2021-11-28 01:10:42 +01:00
Joakim Frostegård
6605055b3d
udp load test: improve statistics code
2021-11-28 01:05:52 +01:00
Joakim Frostegård
b70cbe6349
udp load test: use relaxed ordering, more accurate stats, improve code
2021-11-28 01:02:23 +01:00
Joakim Frostegård
039eeae160
udo load test: report avg for all response types
2021-11-28 00:49:32 +01:00
Joakim Frostegård
f6a33dac8a
udp load test: enable tuning additional request frequency
2021-11-28 00:29:41 +01:00
Joakim Frostegård
f98fb947d4
Merge pull request #32 from greatest-ape/fixes-2021-11-27
...
improve folder/file organization; do some optimizations in aquatic_udp
2021-11-27 18:52:54 +01:00
Joakim Frostegård
baec259feb
ws: use file naming more in line with other impls; other small fixes
2021-11-27 18:35:45 +01:00
Joakim Frostegård
1e77745a84
http: move network.rs and handlers.rs to new workers dir, rename
2021-11-27 18:26:57 +01:00
Joakim Frostegård
4071d4d874
http: use idiomatic folder structure
2021-11-27 18:23:29 +01:00
Joakim Frostegård
d20e57d861
ws: use idiomatic folder structure
2021-11-27 18:19:43 +01:00
Joakim Frostegård
aa3253fcd6
udp: use idiomatic folder structure (lib.rs + main.rs in src)
2021-11-27 18:17:25 +01:00
Joakim Frostegård
b9bc5a2aa4
udp: request worker: use ValidUntil::new_with_now
2021-11-27 18:12:19 +01:00
Joakim Frostegård
d565c6e046
udp: socket worker: only create access list cache once
2021-11-27 18:11:08 +01:00
Joakim Frostegård
deac3898ef
Update TODO
2021-11-26 16:08:23 +01:00
Joakim Frostegård
198fa26870
Merge pull request #31 from greatest-ape/edition-2021
...
Switch to rust edition 2021
2021-11-24 22:59:11 +01:00
Joakim Frostegård
473276cd46
Switch to rust edition 2021
2021-11-24 18:56:26 +01:00
Joakim Frostegård
2913cd1d00
Merge pull request #30 from greatest-ape/udp-2021-11-21
...
aquatic_udp: better file structure, split statistics into ipv4 + ipv6
2021-11-21 23:39:53 +01:00
Joakim Frostegård
2f15b2cc8e
udp: make tracker-side statistics more accurate
2021-11-21 20:39:27 +01:00
Joakim Frostegård
3a4056058b
udp: statistics: properly handle ipv4-mapped ipv6 addresses
2021-11-21 20:16:17 +01:00
Joakim Frostegård
f001c69dc7
udp: statistics: print only for active protocols
2021-11-21 20:09:39 +01:00
Joakim Frostegård
f68bbff700
udp: split statistics by ipv4/ipv6
2021-11-21 20:04:18 +01:00
Joakim Frostegård
34f263f6b9
udp: new file structure: each worker types is submod of workers mod
2021-11-21 19:39:44 +01:00
Joakim Frostegård
2e3f7a4c9f
Update TODO
2021-11-20 15:15:18 +01:00
Joakim Frostegård
ee79464053
Update README
2021-11-20 15:13:57 +01:00
Joakim Frostegård
7a07239c04
Merge pull request #29 from greatest-ape/udp-sharded-state
...
aquatic_udp: remove glommio implementation, shard torrent state by request worker, improve aquatic_udp_load_test
2021-11-19 15:39:53 +01:00
Joakim Frostegård
a1243c59d6
udp: avoid Ordering::SeqCst for atomic operations
2021-11-19 12:30:05 +01:00
Joakim Frostegård
2c336793b1
udp: statistics: improve atomic usize vec sum code
2021-11-19 12:22:11 +01:00
Joakim Frostegård
c78716153b
udp: statistics: show number of peers
2021-11-19 12:17:39 +01:00
Joakim Frostegård
59e95894b9
udp: statistics: show number of torrents and access list len
2021-11-19 12:04:16 +01:00
Joakim Frostegård
31e44db469
Upgrade simplelog to version 0.11
2021-11-19 03:06:02 +01:00
Joakim Frostegård
fee3c9ca4e
Update mio to version 0.8
2021-11-19 03:01:03 +01:00