Commit Graph
126 Commits
Author SHA1 Message Date
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
Joakim Frostegård f80646e3a8 bittorrent_udp: add From<> for requests and responses into their enums 2020-04-10 11:19:29 +02:00
Joakim Frostegård 44b0489521 bittorrent_udp: response_to_bytes: simplify code for ipv6 announce 2020-04-10 10:10:33 +02:00
Joakim Frostegård 2fadbcc8f8 Update TODO 2020-04-10 03:35:22 +02:00
Joakim Frostegård 25f6be3940 Add scripts/test.sh for running tests with higher quickcheck settings 2020-04-10 03:30:59 +02:00
Joakim Frostegård c964f05e84 bittorrent_udp: add quickcheck tests for response byte conversion 2020-04-10 03:30:53 +02:00
Joakim Frostegård 46f9a1d13c Update TODO 2020-04-10 03:29:55 +02:00
Joakim Frostegård 6e6633951f Update README 2020-04-10 03:29:42 +02:00
Joakim Frostegård 264ad17b7b aquatic_bench: use 20 rounds again 2020-04-10 03:29:26 +02:00
Joakim Frostegård 43b31e5e96 bittorrent_udp: request_to_bytes: fix bad writing of zero after IP 2020-04-10 01:43:00 +02:00
Joakim Frostegård 9fbcd60dff bittorrent_udp: response_from_bytes: improve announce code 2020-04-10 01:42:20 +02:00
Joakim Frostegård b20e5912e2 bittorrent_udp: request converters: general cleanup and fixes 2020-04-10 01:22:13 +02:00
Joakim Frostegård 5bd0deb105 bittorrent_udp: requests converters: clean up 2020-04-10 01:08:54 +02:00
Joakim Frostegård c5d746a42e bittorrent_udp: request_from_bytes: improve scrape code 2020-04-10 01:05:29 +02:00
Joakim Frostegård acfd2a75d8 bittorrent_udp: response_to_bytes: improve code 2020-04-09 21:30:58 +02:00
Joakim Frostegård f203250155 bittorrent_udp: response_from_bytes: more improvements 2020-04-09 21:17:30 +02:00
Joakim Frostegård 928a82e4dc bittorrent_udp: response_from_bytes: improve announce part 2020-04-09 21:08:29 +02:00
Joakim Frostegård 13e7ef6b57 bittorrent_udp: response_from_bytes: more fixes 2020-04-09 20:43:42 +02:00
Joakim Frostegård a37b44ec89 bittorrent_udp: response_to_bytes: improve scrape encoding 2020-04-09 20:27:50 +02:00
Joakim Frostegård 9705d1822e Update TODO 2020-04-09 17:58:09 +02:00
Joakim Frostegård 8dfd49af0d cli helpers: in run function, take function as argument instead 2020-04-09 17:56:20 +02:00
Joakim Frostegård ac52668a3d add crate cli_helpers with option and config parsing; use in aquatic
Putting cli functionality into its own crate will allow using it
from aquatic_bench and possibly other programs.
2020-04-09 16:55:40 +02:00
Joakim Frostegård 06756f1c74 Add short README.md 2020-04-09 11:53:19 +02:00
Joakim Frostegård 05d085e076 aquatic_bench: Cargo.toml: sort dependencies alphabetically 2020-04-09 11:52:23 +02:00