Joakim Frostegård
9ba72ce3fd
Upgrade itoa to version 1
2022-01-30 15:55:35 +01:00
Joakim Frostegård
a208775104
Include documentation in printed config files ( #41 )
...
* Start work on printing toml config with comments
* WIP: toml_config: extract default values for fields
* WIP: toml_config: handle single-level nested structs
* WIP: toml_config: improve comment handling, std type trait impls
* WIP: toml_config: add Private trait, improve comment handling, clean up
* toml_config: fix default value bug; improve tests
* Use toml_config in all applicable crates; add toml_config enum support
* toml_config: improve comments
* toml_config_derive: support enum comments
* Improve config comments for udp, cli_helpers, common
* Improve config comments
* Add tests for Config struct TomlConfig implementations
* Improve Config comments
* Improve Config comments
* ws, http: add config comments for tls cert and private key lines
* small fixes to toml_config and toml_config_derive
* Run cargo fmt
* Fix typo in several config comments
* Update README
* Update README
2021-12-26 11:33:27 +01:00
Joakim Frostegård
9dd036a813
Run cargo update
2021-12-22 00:29:56 +01:00
Joakim Frostegård
f531a246b0
udp: support writing statistics html report to file
2021-12-21 23:16:48 +01:00
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
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
Joakim Frostegård
7305a3532c
Run cargo update
2021-11-19 02:47:17 +01:00
Joakim Frostegård
593a46452f
aquatic_common: use hwloc for cpu pinning, for automatic core selection
...
This might not work very well on virtualized hosts, however..
2021-11-19 00:17:14 +01:00
Joakim Frostegård
138ae710ef
udp: remove io_uring version, it is slower than mio version
2021-11-18 22:42:37 +01:00
Joakim Frostegård
99632d4be5
udp: implement torrent map cleaning for new, sharded torrent state
2021-11-18 22:42:37 +01:00
Joakim Frostegård
54149ed3eb
aquatic_common: add work-in-progress SO_ATTACH_REUSEPORT_CBPF impl
2021-11-18 22:42:37 +01:00
Joakim Frostegård
fc6f3c299e
udp load test: move config to own file, clean up imports
2021-11-18 22:42:37 +01:00
Joakim Frostegård
4641dd29f2
udp: remove glommio implementation
2021-11-18 22:42:36 +01:00
Joakim Frostegård
c949bde532
WIP: udp io-uring experiments
2021-11-18 22:42:11 +01:00
Joakim Frostegård
0e61744443
http load test: connection open interval setting, other improvements
2021-11-11 17:52:57 +01:00
Joakim Frostegård
e86410291a
cpu pinning: set affinity to multiple hyperthreads, fix issues
2021-11-07 13:31:03 +01:00
Joakim Frostegård
b653e3e3ff
ws load test: add cpu pinning and log crate logging
2021-11-07 12:00:36 +01:00
Joakim Frostegård
b54694bbc0
aquatic_ws: improve cpu pinning
2021-11-07 11:46:48 +01:00
Joakim Frostegård
57896f4648
http, http load test: improve CPU pinning
2021-11-07 11:25:50 +01:00
Joakim Frostegård
aa332ab296
aquatic_common, udp, udp load test: improve cpu pinning
2021-11-07 11:04:31 +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
9a1993d72e
aquatic_http: use signals for reloading access list
2021-11-02 23:16:18 +01:00
Joakim Frostegård
d922e5e680
aquatic_udp: mio: update access list on SIGHUP instead of regularly
2021-11-02 20:33:08 +01:00
Joakim Frostegård
839f516dcb
ws load test: rewrite with glommio and futures-rustls
2021-11-02 11:38:11 +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
afce23e321
aquatic_http: glommio: use futures-rustls
2021-11-01 17:18:27 +01:00
Joakim Frostegård
130377b8f4
aquatic_http: remove mio implementation
2021-10-28 01:48:32 +02:00
Joakim Frostegård
e458cc54db
aquatic_http_load_test: remove mio implementation, clean up
2021-10-28 01:13:18 +02:00
Joakim Frostegård
13d18bbf03
aquatic_http_load_test: add glommio implementation
2021-10-28 01:06:13 +02:00
Joakim Frostegård
d6d5cc78b7
udp, http: move privilege drop code into aquatic_common
2021-10-27 20:49:15 +02:00
Joakim Frostegård
d659117ae5
Move CoreAffinityConfig to aquatic_common, use in glommio http
2021-10-27 20:19:02 +02:00
Joakim Frostegård
ef10c4f366
WIP: aquatic http glommio
2021-10-26 17:29:21 +02:00
Joakim Frostegård
34bc4046b7
WIP: aquatic_http glommio impl
2021-10-26 16:26:37 +02:00
Joakim Frostegård
ad7e464788
aquatic_http: split into mio and glommio modules
2021-10-26 15:26:06 +02:00
Joakim Frostegård
53ccedc194
aquatic_udp_load_test: set core affinities
2021-10-22 00:15:41 +02:00
Joakim Frostegård
2c4f4a32da
aquatic_udp: set core affinities
2021-10-21 20:58:10 +02:00
Joakim Frostegård
81b7777a4a
aquatic_udp: feature-gate glommio version
2021-10-21 15:26:16 +02:00
Joakim Frostegård
38617c70f4
Refactor AccessList; update it periodically in aquatic_udp glommio
2021-10-19 22:52:31 +02:00
Joakim Frostegård
f2b157a149
aquatic_udp: split some code into mio and glommio versions
2021-10-18 22:51:53 +02:00
Joakim Frostegård
f0a15e9b6f
aquatic_udp: improve request parse errors, send less error responses
2021-10-18 02:10:39 +02:00
Joakim Frostegård
7ccd5fcbf7
access lists: filter requests in socket workers instead
2021-10-16 17:26:40 +02:00
Joakim Frostegård
33966bed57
Run cargo update
2021-10-16 02:31:46 +02:00
Joakim Frostegård
f370dac330
access list: use hex crate for info hash parsing
2021-10-15 10:09:02 +02:00
Joakim Frostegård
8639f380f4
aquatic_udp: first access list implementation
2021-10-15 02:08:57 +02:00