Browse Source

give proposal 151 a changelog and other touchups

Roger Dingledine 16 years ago
parent
commit
ee89061ef2
3 changed files with 17 additions and 5 deletions
  1. 13 1
      ChangeLog
  2. 1 1
      src/or/circuitbuild.c
  3. 3 3
      src/or/or.h

+ 13 - 1
ChangeLog

@@ -1,5 +1,17 @@
-Changes in version 0.2.2.2-alpha - 2009-09-??
+Changes in version 0.2.2.2-alpha - 2009-09-17
   o Major features:
   o Major features:
+    - Tor now tracks how long it takes to build client-side circuits
+      over time, and adapts its timeout to local network performance.
+      Since a circuit that takes a long time to build will also provide
+      bad performance, we get significant latency improvements by
+      discarding the slowest 20% of circuits. Specifically, Tor creates
+      circuits more aggressively than usual until it has enough data
+      points for a good timeout estimate. Implements proposal 151.
+      We are especially looking for reports (good and bad) from users with
+      both EDGE and broadband connections that can move from broadband
+      to EDGE and find out if the build-time data in the .tor/state gets
+      reset without loss of Tor usability. You should also see a notice
+      log message telling you that Tor has reset its timeout.
     - Authorities can now vote on arbitary integer values as part of the
     - Authorities can now vote on arbitary integer values as part of the
       consensus process. This is designed to help set network parameters.
       consensus process. This is designed to help set network parameters.
       Implements proposal 167.
       Implements proposal 167.

+ 1 - 1
src/or/circuitbuild.c

@@ -179,7 +179,7 @@ circuit_build_times_add_time(circuit_build_times_t *cbt, build_time_t time)
     cbt->total_build_times++;
     cbt->total_build_times++;
 
 
   if ((cbt->total_build_times % BUILD_TIMES_SAVE_STATE_EVERY) == 0) {
   if ((cbt->total_build_times % BUILD_TIMES_SAVE_STATE_EVERY) == 0) {
-    /* Save state every 100 circuit builds */
+    /* Save state every n circuit builds */
     if (!unit_tests && !get_options()->AvoidDiskWrites)
     if (!unit_tests && !get_options()->AvoidDiskWrites)
       or_state_mark_dirty(get_or_state(), 0);
       or_state_mark_dirty(get_or_state(), 0);
   }
   }

+ 3 - 3
src/or/or.h

@@ -2882,13 +2882,13 @@ void entry_guards_free_all(void);
 /** Width of the histogram bins in milliseconds */
 /** Width of the histogram bins in milliseconds */
 #define BUILDTIME_BIN_WIDTH ((build_time_t)50)
 #define BUILDTIME_BIN_WIDTH ((build_time_t)50)
 
 
-/** Cuttof point on the CDF for our timeout estimation.
+/** Cutoff point on the CDF for our timeout estimation.
  * TODO: This should be moved to the consensus */
  * TODO: This should be moved to the consensus */
 #define BUILDTIMEOUT_QUANTILE_CUTOFF 0.8
 #define BUILDTIMEOUT_QUANTILE_CUTOFF 0.8
 
 
 /** A build_time_t is milliseconds */
 /** A build_time_t is milliseconds */
 typedef uint32_t build_time_t;
 typedef uint32_t build_time_t;
-#define BUILD_TIME_MAX  ((build_time_t)(INT32_MAX))
+#define BUILD_TIME_MAX ((build_time_t)(INT32_MAX))
 
 
 /** Have we received a cell in the last N seconds? */
 /** Have we received a cell in the last N seconds? */
 #define NETWORK_LIVE_MULTIPLIER (RECENT_CIRCUITS/2.5)
 #define NETWORK_LIVE_MULTIPLIER (RECENT_CIRCUITS/2.5)
@@ -2903,7 +2903,7 @@ typedef uint32_t build_time_t;
 #define BUILD_TIMES_TEST_FREQUENCY 60
 #define BUILD_TIMES_TEST_FREQUENCY 60
 
 
 /** Save state every 10 circuits */
 /** Save state every 10 circuits */
-#define BUILD_TIMES_SAVE_STATE_EVERY  10
+#define BUILD_TIMES_SAVE_STATE_EVERY 10
 
 
 typedef struct {
 typedef struct {
   /** The circular array of recorded build times in milliseconds */
   /** The circular array of recorded build times in milliseconds */