From daf1c67027a1cdfea62cfdc1380f6a3efb4d6c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Thu, 19 Aug 2021 12:05:42 +0200 Subject: [PATCH] Update README.md --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8c23e49..1e161e3 100644 --- a/README.md +++ b/README.md @@ -16,18 +16,6 @@ Copyright (c) 2020-2021 Joakim FrostegÄrd Distributed under Apache 2.0 license (details in `LICENSE` file.) -## Technical overview of tracker design - -One or more socket workers open sockets, read and parse requests from peers and -send them through channels to request workers. The request workers go through -the requests, update shared internal tracker state as appropriate and generate -responses that are sent back to the socket workers. The responses are then -serialized and sent back to the peers. - -This design means little waiting for locks on internal state occurs, -while network work can be efficiently distributed over multiple threads, -making use of SO_REUSEPORT setting. - ## Installation prerequisites - Install Rust with [rustup](https://rustup.rs/) (stable is recommended) @@ -193,6 +181,18 @@ corresponding load test binary: To fairly compare HTTP performance to opentracker, set keepalive to false in `aquatic_http` settings. +## Architectural overview + +One or more socket workers open sockets, read and parse requests from peers and +send them through channels to request workers. The request workers go through +the requests, update shared internal tracker state as appropriate and generate +responses that are sent back to the socket workers. The responses are then +serialized and sent back to the peers. + +This design means little waiting for locks on internal state occurs, +while network work can be efficiently distributed over multiple threads, +making use of SO_REUSEPORT setting. + ## Trivia The tracker is called aquatic because it thrives under a torrent of bits ;-)