Commit graph

399 commits

Author SHA1 Message Date
Joakim Frostegård
ec93760304 Update TODO 2020-04-19 10:39:52 +02:00
Joakim Frostegård
88feb49c3d aquatic_bench: fix progress bar min width for request type info 2020-04-19 10:38:59 +02:00
Joakim Frostegård
7ba61ee6b7 aquatic: improve comment for NetworkConfig.socket_recv_buffer_size 2020-04-19 10:34:01 +02:00
Joakim Frostegård
d63d8e14f4 README: improve tone in trivia section 2020-04-19 10:32:47 +02:00
Joakim Frostegård
b77af78483 Add scripts for setting up benchmarks on linux 2020-04-19 10:31:33 +02:00
Joakim Frostegård
f6ed47fec7 add aquatic_load_test for benchmarking aquatic over the network 2020-04-19 10:21:12 +02:00
Joakim Frostegård
eb3ba6a2ce Update TODO 2020-04-14 22:05:20 +02:00
Joakim Frostegård
4127cbc7c9 aquatic: handlers: minor syntax and comment improvements 2020-04-14 20:13:12 +02:00
Joakim Frostegård
6fca5cd9d5 aquatic: config: resort to default values for keys not present in file 2020-04-14 17:45:35 +02:00
Joakim Frostegård
57c5d8314f Update TODO 2020-04-14 16:25:47 +02:00
Joakim Frostegård
f0ec858bef socket workers: add Vec for requests (send together) and responses
Local response vector is used for error responses
2020-04-13 17:13:03 +02:00
Joakim Frostegård
6950726b3c aquatic: actually send error responses from parsing 2020-04-13 16:52:05 +02:00
Joakim Frostegård
fbeade0ca2 Update README and TODO 2020-04-13 14:41:40 +02:00
Joakim Frostegård
c44c5b017f aquatic: announce: fix bug in calculation of number of peers to take 2020-04-13 12:52:58 +02:00
Joakim Frostegård
8f68b3a9a2 aquatic: config: change default settings 2020-04-13 12:50:53 +02:00
Joakim Frostegård
ca52b44389 split connection and torrent mutexes again 2020-04-13 12:01:17 +02:00
Joakim Frostegård
b9a9a82207 bench: add announce and scrape benchmarks
Only announce seems to be faster with more threads
2020-04-13 03:23:17 +02:00
Joakim Frostegård
f4ca9c2795 aquatic_bench: start work on fixing it: create new connect bencher 2020-04-13 01:34:05 +02:00
Joakim Frostegård
6c4013ca55 Update TODO 2020-04-12 22:09:34 +02:00
Joakim Frostegård
06ff4ad9d0 aquatic: save valid_until Instant in connections and requests
Hopefully prevents strange subtraction overflow error, but
we'll see.
2020-04-12 22:04:42 +02:00
Joakim Frostegård
587096f76f aquatic: give threads names when spawning them 2020-04-12 21:46:48 +02:00
Joakim Frostegård
140aa4b75d aquatic: improve naming of socket workers, request workers 2020-04-12 21:40:38 +02:00
Joakim Frostegård
f8713c09c1 aquatic: handler: put responses in vector, send after releasing lock 2020-04-12 14:54:38 +02:00
Joakim Frostegård
16155f3de5 Update TODO 2020-04-12 14:46:49 +02:00
Joakim Frostegård
2779b6ec3a aquatic: lock connections and torrents together; optimize handler
Handler: don't stop collecting requests early unless mutex can
be unlocked.
2020-04-12 14:44:34 +02:00
Joakim Frostegård
62a40317f9 Update TODO 2020-04-12 13:41:35 +02:00
Joakim Frostegård
cbae43e175 aquatic: HandlerConfig: add comment 2020-04-12 13:31:32 +02:00
Joakim Frostegård
ad7a8c46a9 aquatic: config: rename recv_buffer_size to socket_recv_buffer_size 2020-04-12 13:29:21 +02:00
Joakim Frostegård
5430e561f5 aquatic: Config: add fields for max handler request, channel timeout 2020-04-12 13:26:44 +02:00
Joakim Frostegård
e61c961126 Use hashbrown hashmap directly for faster hash (ahash) 2020-04-12 13:19:07 +02:00
Joakim Frostegård
eaa42a26b7 Update TODO 2020-04-12 12:35:05 +02:00
Joakim Frostegård
3c5b515be9 Update TODO 2020-04-11 22:22:44 +02:00
Joakim Frostegård
558ddadf28 Remove DashMap, use parking_lot::Mutex<HashMap> instead 2020-04-11 22:07:09 +02:00
Joakim Frostegård
70cc193522 Use crossbeam channel insteaf of SegQueue
Reduces overutilization of CPU greatly
2020-04-11 21:11:25 +02:00
Joakim Frostegård
f37ba1e52e Use (unbounded) SegQueue instead of ArrayQueue 2020-04-11 20:00:51 +02:00
Joakim Frostegård
6503e89375 Update TODO 2020-04-11 19:58:49 +02:00
Joakim Frostegård
3527952242 start work on using seperate threads for sockets and handlers 2020-04-11 19:35:15 +02:00
Joakim Frostegård
8d7cbb7926 aquatic_bench: test multiple threads at once, with disappointing results
DashMap doesn't scale as well as I had hoped. Only the scrape
handler performed somewhat better with more threads, since it
doesn't exlusively lock the torrent map. The announce and connect
handlers, however, gained barely nothing from more threads.
2020-04-11 17:54:23 +02:00
Joakim Frostegård
eded822c31 Update TODO 2020-04-11 15:05:11 +02:00
Joakim Frostegård
9bf17b0ab4 bittorrent_udp: response_to_bytes: return Result<(), io:Error> 2020-04-11 15:03:50 +02:00
Joakim Frostegård
054d36b316 Update TODO 2020-04-11 15:03:45 +02:00
Joakim Frostegård
c45fa80391 bittorrent_udp: simplify quickcheck test syntax, keeping functionality 2020-04-11 14:57:08 +02:00
Joakim Frostegård
02b63feef7 bittorrent_udp: add quickcheck tests for request byte conversion 2020-04-11 14:53:36 +02:00
Joakim Frostegård
554895a9df bittorrent_udp: implement quickcheck::Arbitrary for request types 2020-04-11 14:43:58 +02:00
Joakim Frostegård
9a1143ffac aquatic_bench: enable loading configuration from file 2020-04-11 14:31:21 +02:00
Joakim Frostegård
4691080602 Update TODO 2020-04-11 14:23:03 +02:00
Joakim Frostegård
834a8c3fa2 cli_helpers: run_with_cli_and_config: rename function and "f" argument 2020-04-11 14:19:46 +02:00
Joakim Frostegård
688372bdf2 aquatic: announce and scrape handlers: send back error on invalid conn 2020-04-11 14:17:03 +02:00
Joakim Frostegård
b32046e768 bittorrent_udp: improve code formatting and imports 2020-04-10 15:20:27 +02:00
Joakim Frostegård
fe85901021 bittorrent_udp: add RequestParseError; remove InvalidRequest; other fixes 2020-04-10 15:16:20 +02:00