tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit efbd4a33f4223bd3b7b3b0de307e9854e1d72e4e
parent a368cadf9514cf31deebed8613c4fd833b1448bf
Author: Nick Mathewson <nickm@torproject.org>
Date:   Fri, 11 Aug 2017 13:54:01 -0400

Raise MIN_DL_PER_REQUEST to 32

This change should improve overhead for downloading small numbers of
descriptors and microdescriptors by improving compression
performance and lowering directory request overhead.

Closes ticket 23220.

Diffstat:
Achanges/bug23220 | 7+++++++
Msrc/or/routerlist.c | 5+++--
2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/changes/bug23220 b/changes/bug23220 @@ -0,0 +1,7 @@ + o Minor features (client directory bandwidth tuning): + + - When downloading (micro)descriptors, don't split the list of + descriptors into multiple requests unless there are at least 32 + descriptors that we want. Previously, we split at 4, not 32, which + could lead to significant overhead in HTTP request size and + degradation in compression performance. Closes ticket 23220. diff --git a/src/or/routerlist.c b/src/or/routerlist.c @@ -4971,8 +4971,9 @@ max_dl_per_request(const or_options_t *options, int purpose) } /** Don't split our requests so finely that we are requesting fewer than - * this number per server. */ -#define MIN_DL_PER_REQUEST 4 + * this number per server. (Grouping more than this at once leads to + * diminishing returns.) */ +#define MIN_DL_PER_REQUEST 32 /** To prevent a single screwy cache from confusing us by selective reply, * try to split our requests into at least this many requests. */ #define MIN_REQUESTS 3