commit efbd4a33f4223bd3b7b3b0de307e9854e1d72e4e Author: Nick Mathewson nickm@torproject.org Date: Fri Aug 11 13:54:01 2017 -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. --- changes/bug23220 | 7 +++++++ src/or/routerlist.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/changes/bug23220 b/changes/bug23220 new file mode 100644 index 000000000..9c2efc959 --- /dev/null +++ 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 index 49caa875f..989401947 100644 --- 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
tor-commits@lists.torproject.org