Raise thresholds for declaring bootstrapping complete.

This patch changes the total serverdesc threshold from 25% to 75%
and the exit threshold from 33% to 50%.  The goal is to make
initially constructed circuits less horrible, and to make initial
less awful (since fetching directory information in parallel with
whatever the user is trying to do can hurt their performance).

Implements ticket 3196.
This commit is contained in:
Nick Mathewson 2012-05-11 12:09:00 -04:00
parent e0655708a2
commit 6757261e8f
2 changed files with 16 additions and 2 deletions

7
changes/bug3196 Normal file
View File

@ -0,0 +1,7 @@
o Minor features:
- Raise the threshold of server descriptors needed (75%) and exit
server descriptors needed (50%) before we will declare ourselves
bootstrapped. This will make clients declare completion a little
later, but makes the initially constructed circuits less weird
and less in conflict with directory connections. Fixes ticket
#3196.

View File

@ -4997,7 +4997,14 @@ update_router_have_minimum_dir_info(void)
count_usable_descriptors(&num_exit_present, &num_exit_usable,
consensus, options, now, options->ExitNodes, 1);
if (num_present < num_usable/4) {
/* What fraction of desired server descriptors do we need before we will
* build circuits? */
#define FRACTION_USABLE_NEEDED .75
/* What fraction of desired _exit_ server descriptors do we need before we
* will build circuits? */
#define FRACTION_EXIT_USABLE_NEEDED .5
if (num_present < num_usable * FRACTION_USABLE_NEEDED) {
tor_snprintf(dir_info_status, sizeof(dir_info_status),
"We have only %d/%d usable %sdescriptors.",
num_present, num_usable, using_md ? "micro" : "");
@ -5010,7 +5017,7 @@ update_router_have_minimum_dir_info(void)
num_present, using_md ? "micro" : "", num_present ? "" : "s");
res = 0;
goto done;
} else if (num_exit_present < num_exit_usable / 3) {
} else if (num_exit_present < num_exit_usable * FRACTION_EXIT_USABLE_NEEDED) {
tor_snprintf(dir_info_status, sizeof(dir_info_status),
"We have only %d/%d usable exit node descriptors.",
num_exit_present, num_exit_usable);