Update README.md

This commit is contained in:
Joakim Frostegård 2021-08-19 12:05:42 +02:00 committed by GitHub
parent 9e631ec5ce
commit daf1c67027
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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 ;-)