Commit graph

1765 commits

Author SHA1 Message Date
Joakim Frostegård
858cea143a bencher: udp: remove chihaya from high core count load tests
It tends to crash here
2023-12-30 19:25:57 +01:00
Joakim Frostegård
b1c2a9bff4 bencher: tweak UDP set config 2023-12-30 19:18:18 +01:00
Joakim Frostegård
23fe6d4e20 bencher: remove chihaya GOMAXPROCS option
It makes no difference to performance
2023-12-30 19:14:42 +01:00
Joakim Frostegård
0f469ff725 udp: increase default config value worker_channel_size 2023-12-30 18:16:53 +01:00
Joakim Frostegård
87e7811751 Update bencher settings and setup script 2023-12-30 18:13:55 +01:00
Joakim Frostegård
42a9e8f99e Add scripts/bench/setup-udp-bookworm.sh 2023-12-30 16:47:11 +01:00
Joakim Frostegård
8c21b89e51
Merge pull request #164 from greatest-ape/bencher-fixes
Rename aquatic_load_tester to aquatic_bencher, support chihaya, improve error handling, update sets
2023-12-28 20:20:13 +01:00
Joakim Frostegård
0c500ec4f0 bencher: udp: support chihaya, improve error handling, update sets 2023-12-28 20:04:10 +01:00
Joakim Frostegård
af45feb911 Rename aquatic_load_tester to aquatic_bencher 2023-12-28 17:42:25 +01:00
Joakim Frostegård
6f9b0fce7b
Merge pull request #163 from greatest-ape/load-test-fixes
load tester: refactor, add udp sets, improve docs, add command options; update README
2023-12-27 21:44:38 +01:00
Joakim Frostegård
0317053f80 load tester: refactor, add udp sets, improve docs, add command options 2023-12-27 21:22:58 +01:00
Joakim Frostegård
7b6bb12c9e Update README 2023-12-27 19:08:00 +01:00
Joakim Frostegård
3fde7d626d
Merge pull request #162 from greatest-ape/udp-validator-fixes
udp: harden ConnectionValidator; run cargo update
2023-12-26 00:32:50 +01:00
Joakim Frostegård
a3b6cab3b5 Run cargo update
Updating anyhow v1.0.75 -> v1.0.76
    Removing base64 v0.13.1
    Updating clap v4.4.8 -> v4.4.11
    Updating clap_builder v4.4.8 -> v4.4.11
    Updating colored v2.0.4 -> v2.1.0
    Updating crossbeam v0.8.2 -> v0.8.3
    Updating crossbeam-channel v0.5.8 -> v0.5.10
    Updating crossbeam-deque v0.8.3 -> v0.8.4
    Updating crossbeam-epoch v0.9.15 -> v0.9.17
    Updating crossbeam-queue v0.3.8 -> v0.3.10
    Updating crossbeam-utils v0.8.16 -> v0.8.18
    Updating data-encoding v2.4.0 -> v2.5.0
    Updating deranged v0.3.9 -> v0.3.10
    Updating errno v0.3.7 -> v0.3.8
    Updating form_urlencoded v1.2.0 -> v1.2.1
    Updating futures v0.3.29 -> v0.3.30
    Updating futures-channel v0.3.29 -> v0.3.30
    Updating futures-core v0.3.29 -> v0.3.30
    Updating futures-executor v0.3.29 -> v0.3.30
    Updating futures-io v0.3.29 -> v0.3.30
    Updating futures-macro v0.3.29 -> v0.3.30
    Updating futures-sink v0.3.29 -> v0.3.30
    Updating futures-task v0.3.29 -> v0.3.30
    Updating futures-util v0.3.29 -> v0.3.30
    Updating gimli v0.28.0 -> v0.28.1
    Updating hashbrown v0.14.2 -> v0.14.3
    Updating hdrhistogram v7.5.3 -> v7.5.4
    Updating http-body v0.4.5 -> v0.4.6
    Updating hyper v0.14.27 -> v0.14.28
    Updating idna v0.4.0 -> v0.5.0
    Updating itoa v1.0.9 -> v1.0.10
    Updating js-sys v0.3.65 -> v0.3.66
    Updating libc v0.2.150 -> v0.2.151
    Updating linux-raw-sys v0.4.11 -> v0.4.12
    Updating mach2 v0.4.1 -> v0.4.2
    Updating metrics-exporter-prometheus v0.12.1 -> v0.12.2
    Updating metrics-macros v0.7.0 -> v0.7.1
    Updating mio v0.8.9 -> v0.8.10
    Updating object v0.32.1 -> v0.32.2
    Updating once_cell v1.18.0 -> v1.19.0
    Updating percent-encoding v2.3.0 -> v2.3.1
    Updating pkg-config v0.3.27 -> v0.3.28
    Updating portable-atomic v1.5.1 -> v1.6.0
    Updating proc-macro2 v1.0.69 -> v1.0.71
    Updating ring v0.17.5 -> v0.17.7
    Updating rustix v0.38.24 -> v0.38.28
    Updating rustls v0.21.9 -> v0.21.10
    Updating ryu v1.0.15 -> v1.0.16
    Updating serde v1.0.192 -> v1.0.193
    Updating serde_derive v1.0.192 -> v1.0.193
    Updating serde_spanned v0.6.4 -> v0.6.5
    Updating simple_logger v4.2.0 -> v4.3.0
    Updating slotmap v1.0.6 -> v1.0.7
    Updating syn v2.0.39 -> v2.0.43
    Updating thiserror v1.0.50 -> v1.0.52
    Updating thiserror-impl v1.0.50 -> v1.0.52
    Updating time v0.3.30 -> v0.3.31
    Updating time-macros v0.2.15 -> v0.2.16
    Updating tokio v1.34.0 -> v1.35.1
    Updating try-lock v0.2.4 -> v0.2.5
    Updating unicode-bidi v0.3.13 -> v0.3.14
    Updating url v2.4.1 -> v2.5.0
    Updating wasm-bindgen v0.2.88 -> v0.2.89
    Updating wasm-bindgen-backend v0.2.88 -> v0.2.89
    Updating wasm-bindgen-macro v0.2.88 -> v0.2.89
    Updating wasm-bindgen-macro-support v0.2.88 -> v0.2.89
    Updating wasm-bindgen-shared v0.2.88 -> v0.2.89
    Updating web-sys v0.3.65 -> v0.3.66
    Removing windows-sys v0.42.0
    Removing windows_aarch64_gnullvm v0.42.2
    Removing windows_aarch64_msvc v0.42.2
    Removing windows_i686_gnu v0.42.2
    Removing windows_i686_msvc v0.42.2
    Removing windows_x86_64_gnu v0.42.2
    Removing windows_x86_64_gnullvm v0.42.2
    Removing windows_x86_64_msvc v0.42.2
    Updating winnow v0.5.28 -> v0.5.30
    Updating zerocopy v0.7.26 -> v0.7.32
    Updating zerocopy-derive v0.7.26 -> v0.7.32
2023-12-26 00:21:20 +01:00
Joakim Frostegård
ba8bdd6ae6 udp: harden ConnectionValidator 2023-12-26 00:19:47 +01:00
Joakim Frostegård
5870b53c83
Merge pull request #161 from greatest-ape/auto-load-tester
Add aquatic_load_tester: multi-run multi-implementation load tests
2023-12-25 23:19:29 +01:00
Joakim Frostegård
afc3deb656 Add aquatic_load_tester: multi-run multi-implementation load tests
- Work in progress
- Only UDP is currently implemented so far
- Also includes some changes to other crates, notably deriving
  serde Serialize for Config structs and making udp_load_test
  a lib and a binary
2023-12-17 21:59:18 +01:00
Joakim Frostegård
c7997d5aed
Merge pull request #160 from greatest-ape/udp-thingbuf2
udp improvements; update dependencies
2023-12-10 12:31:22 +01:00
Joakim Frostegård
d84e4512ad
Merge branch 'master' into udp-thingbuf2 2023-12-10 12:27:37 +01:00
Joakim Frostegård
633df4dc42 Run cargo update
Removing base64 v0.13.1
    Updating clap v4.4.8 -> v4.4.11
    Updating clap_builder v4.4.8 -> v4.4.11
    Updating colored v2.0.4 -> v2.1.0
    Updating data-encoding v2.4.0 -> v2.5.0
    Updating deranged v0.3.9 -> v0.3.10
    Updating errno v0.3.7 -> v0.3.8
    Updating form_urlencoded v1.2.0 -> v1.2.1
    Updating gimli v0.28.0 -> v0.28.1
    Updating hashbrown v0.14.2 -> v0.14.3
    Updating hdrhistogram v7.5.3 -> v7.5.4
    Updating http-body v0.4.5 -> v0.4.6
    Updating idna v0.4.0 -> v0.5.0
    Updating itoa v1.0.9 -> v1.0.10
    Updating js-sys v0.3.65 -> v0.3.66
    Updating linux-raw-sys v0.4.11 -> v0.4.12
    Updating mio v0.8.9 -> v0.8.10
    Updating once_cell v1.18.0 -> v1.19.0
    Updating percent-encoding v2.3.0 -> v2.3.1
    Updating portable-atomic v1.5.1 -> v1.6.0
    Updating proc-macro2 v1.0.69 -> v1.0.70
    Updating ring v0.17.5 -> v0.17.7
    Updating rustix v0.38.24 -> v0.38.28
    Updating rustls v0.21.9 -> v0.21.10
    Updating ryu v1.0.15 -> v1.0.16
    Updating serde v1.0.192 -> v1.0.193
    Updating serde_derive v1.0.192 -> v1.0.193
    Updating simple_logger v4.2.0 -> v4.3.0
    Updating slotmap v1.0.6 -> v1.0.7
    Updating tokio v1.34.0 -> v1.35.0
    Updating try-lock v0.2.4 -> v0.2.5
    Updating unicode-bidi v0.3.13 -> v0.3.14
    Updating url v2.4.1 -> v2.5.0
    Updating wasm-bindgen v0.2.88 -> v0.2.89
    Updating wasm-bindgen-backend v0.2.88 -> v0.2.89
    Updating wasm-bindgen-macro v0.2.88 -> v0.2.89
    Updating wasm-bindgen-macro-support v0.2.88 -> v0.2.89
    Updating wasm-bindgen-shared v0.2.88 -> v0.2.89
    Updating web-sys v0.3.65 -> v0.3.66
    Updating windows-sys v0.42.0 -> v0.52.0
      Adding windows-targets v0.52.0
    Updating windows_aarch64_gnullvm v0.42.2 -> v0.52.0
    Updating windows_aarch64_msvc v0.42.2 -> v0.52.0
    Updating windows_i686_gnu v0.42.2 -> v0.52.0
    Updating windows_i686_msvc v0.42.2 -> v0.52.0
    Updating windows_x86_64_gnu v0.42.2 -> v0.52.0
    Updating windows_x86_64_gnullvm v0.42.2 -> v0.52.0
    Updating windows_x86_64_msvc v0.42.2 -> v0.52.0
    Updating zerocopy v0.7.26 -> v0.7.30
    Updating zerocopy-derive v0.7.26 -> v0.7.30
2023-12-10 12:17:50 +01:00
Joakim Frostegård
3eb75f7c57 Update script for running file transfer tests locally 2023-12-10 12:17:26 +01:00
Joakim Frostegård
cb39eb69c8 udp: reorder code in swarm storage 2023-12-10 12:13:56 +01:00
Joakim Frostegård
a873dddb89 Remove unused aquatic_udp_bench 2023-12-10 12:09:53 +01:00
Joakim Frostegård
0c4140165b udp: reuse response channel mem, add backpressure, faster peer extract 2023-12-10 12:07:38 +01:00
Joakim Frostegård
0e12dd1b13 use zerocopy in udp protocol, easy running transfer CI locally 2023-12-02 12:24:41 +01:00
Joakim Frostegård
af16a9e682 udp: fix io_uring soundness issues 2023-11-23 18:52:13 +01:00
Joakim Frostegård
e2a321196b
Merge pull request #158 from greatest-ape/fixes-2
http: split swarm worker module into submodules
2023-11-19 09:43:10 +01:00
Joakim Frostegård
7cfcf5ea55 http: split swarm worker module into submodules 2023-11-18 00:29:15 +01:00
Joakim Frostegård
3f2a87b10f
Merge pull request #157 from greatest-ape/fixes-1
http: allow disabling TLS, allow reverse proxies, general fixes; improve ws code; cargo update
2023-11-17 18:33:40 +01:00
Joakim Frostegård
2520b2cbbd Fix GitHub CI build 2023-11-17 18:29:34 +01:00
Joakim Frostegård
d7e9b688d9 Run cargo update
Removing ahash v0.7.6
    Removing ahash v0.8.3
      Adding ahash v0.7.7
      Adding ahash v0.8.6
    Updating base64 v0.21.4 -> v0.21.5
    Updating clap v4.4.6 -> v4.4.8
    Updating clap_builder v4.4.6 -> v4.4.8
    Updating clap_lex v0.5.1 -> v0.6.0
    Updating cpufeatures v0.2.9 -> v0.2.11
    Updating errno v0.3.5 -> v0.3.7
    Updating futures v0.3.28 -> v0.3.29
    Updating futures-channel v0.3.28 -> v0.3.29
    Updating futures-core v0.3.28 -> v0.3.29
    Updating futures-executor v0.3.28 -> v0.3.29
    Updating futures-io v0.3.28 -> v0.3.29
    Updating futures-macro v0.3.28 -> v0.3.29
    Updating futures-sink v0.3.28 -> v0.3.29
    Updating futures-task v0.3.28 -> v0.3.29
    Updating futures-util v0.3.28 -> v0.3.29
    Updating getrandom v0.2.10 -> v0.2.11
    Updating hashbrown v0.14.1 -> v0.14.2
    Updating hdrhistogram v7.5.2 -> v7.5.3
    Updating http v0.2.9 -> v0.2.11
    Updating indexmap v2.0.2 -> v2.1.0
    Updating ipnet v2.8.0 -> v2.9.0
    Updating js-sys v0.3.64 -> v0.3.65
    Updating libc v0.2.149 -> v0.2.150
    Updating linux-raw-sys v0.4.10 -> v0.4.11
    Updating mio v0.8.8 -> v0.8.9
    Updating portable-atomic v1.4.3 -> v1.5.1
    Updating redox_syscall v0.3.5 -> v0.4.1
    Updating ring v0.16.20 -> v0.17.5
    Updating rustix v0.38.19 -> v0.38.24
    Updating rustls v0.21.7 -> v0.21.9
    Updating rustls-pemfile v1.0.3 -> v1.0.4
    Updating rustls-webpki v0.101.6 -> v0.101.7
    Updating sct v0.7.0 -> v0.7.1
    Updating serde v1.0.189 -> v1.0.192
    Updating serde_derive v1.0.189 -> v1.0.192
    Updating serde_json v1.0.107 -> v1.0.108
    Updating smallvec v1.11.1 -> v1.11.2
    Removing socket2 v0.4.9
    Removing socket2 v0.5.4
      Adding socket2 v0.4.10
      Adding socket2 v0.5.5
    Removing spin v0.5.2
    Updating syn v2.0.38 -> v2.0.39
    Updating tempfile v3.8.0 -> v3.8.1
    Updating thiserror v1.0.49 -> v1.0.50
    Updating thiserror-impl v1.0.49 -> v1.0.50
    Updating tokio v1.33.0 -> v1.34.0
    Updating tracing v0.1.39 -> v0.1.40
    Updating untrusted v0.7.1 -> v0.9.0
    Updating wasm-bindgen v0.2.87 -> v0.2.88
    Updating wasm-bindgen-backend v0.2.87 -> v0.2.88
    Updating wasm-bindgen-macro v0.2.87 -> v0.2.88
    Updating wasm-bindgen-macro-support v0.2.87 -> v0.2.88
    Updating wasm-bindgen-shared v0.2.87 -> v0.2.88
    Updating web-sys v0.3.64 -> v0.3.65
      Adding zerocopy v0.7.26
      Adding zerocopy-derive v0.7.26
2023-11-17 18:22:00 +01:00
Joakim Frostegård
923b3637e8 http: allow disabling TLS, allow reverse proxies, general fixes 2023-11-17 18:16:29 +01:00
Joakim Frostegård
7b2a7a4f46 ws: improve socket worker connection code 2023-11-17 00:15:41 +01:00
Joakim Frostegård
fe5ccf6646
ws: refactor, bug fixes, improvements (#155)
- split swarm worker into two modules
- split socket worker into two modules
- keep track of which offers peers have sent and only allow matching
answers
- always clean up after closing connection
- use channel for telling connections to close
- move some logic into new ConnectionRunner struct
- use slotmap for connection reference storage
- fix double counting of error responses
- actually close connections that take too long to send responses to
- remove announced_info_hashes entry on AnnounceEvent::Stopped
2023-11-09 18:06:21 +01:00
Joakim Frostegård
af9d5a55f6
Merge pull request #154 from greatest-ape/work-2023-10-30
improve ws protocol struct naming and documentation; update TODO
2023-10-30 22:44:06 +01:00
Joakim Frostegård
dadb227c63 Update TODO 2023-10-30 20:19:51 +01:00
Joakim Frostegård
577161e540 ws protocol: simplify code for AnnounceAction and ScrapeAction 2023-10-30 19:49:45 +01:00
Joakim Frostegård
d94936a50b ws: require offer/answer sdp field to be String, fix related code 2023-10-30 19:37:25 +01:00
Joakim Frostegård
c37bf89650 ws: include "type" field in RtcOffer and RtcAnswer 2023-10-30 19:34:24 +01:00
Joakim Frostegård
0789f7ec3b improve ws protocol struct naming and documentation 2023-10-30 19:13:46 +01:00
Joakim Frostegård
b473bb6fba
Merge pull request #152 from greatest-ape/work-2023-10-24
ws & http: reload tls config on SIGUSR1
2023-10-24 21:40:54 +02:00
Joakim Frostegård
0d83bd51ee ws: skip updating tls cert if file data same as currently loaded 2023-10-24 20:42:18 +02:00
Joakim Frostegård
78645fe658 ws: auto-close connections after grace period when updating tls config 2023-10-24 20:23:30 +02:00
Joakim Frostegård
99647a323a http: reload tls config on SIGUSR1 2023-10-24 18:44:49 +02:00
Joakim Frostegård
6a23ef9103 ws: reload tls config on SIGUSR1 2023-10-24 18:36:56 +02:00
Joakim Frostegård
c5c995bb80
Split README into separate files (#150)
* Create a separate udp README file

* Split README into separate files for all three implementations

* Minor README fixes
2023-10-19 19:59:11 +02:00
Joakim Frostegård
891ad71751
Merge pull request #149 from greatest-ape/work-2023-10-18
Update dependencies; move all crates to new "crates" dir
2023-10-19 19:16:41 +02:00
Joakim Frostegård
9b032f7e24 Move all crates to new crates dir 2023-10-18 23:53:41 +02:00
Joakim Frostegård
3835da22ac ws: update simd-json to v0.12 2023-10-18 23:24:53 +02:00
Joakim Frostegård
c2f7b6ed92 ws: upgrade tungstenite 2023-10-18 23:11:06 +02:00