summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2009-09-17 01:42:33 -0400
committerRoger Dingledine <arma@torproject.org>2009-09-17 01:42:33 -0400
commitee89061ef29dfd6df7057eadbad4a491548f622c (patch)
tree1ea90aefea91a207bc2579b8acccecd2e0332627
parentfeccaa5c8388f499944683ca22736a0896f4410b (diff)
downloadtor-ee89061ef29dfd6df7057eadbad4a491548f622c.tar.gz
tor-ee89061ef29dfd6df7057eadbad4a491548f622c.zip
give proposal 151 a changelog and other touchups
-rw-r--r--ChangeLog14
-rw-r--r--src/or/circuitbuild.c2
-rw-r--r--src/or/or.h6
3 files changed, 17 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 72c9dfd55f..da363d9978 100644
--- a/ChangeLog
+++ b/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:
+ - 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
consensus process. This is designed to help set network parameters.
Implements proposal 167.
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 177852f91a..5ea3a31afe 100644
--- a/src/or/circuitbuild.c
+++ b/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++;
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)
or_state_mark_dirty(get_or_state(), 0);
}
diff --git a/src/or/or.h b/src/or/or.h
index bdb4d97924..1dcb2494c6 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2882,13 +2882,13 @@ void entry_guards_free_all(void);
/** Width of the histogram bins in milliseconds */
#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 */
#define BUILDTIMEOUT_QUANTILE_CUTOFF 0.8
/** A build_time_t is milliseconds */
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? */
#define NETWORK_LIVE_MULTIPLIER (RECENT_CIRCUITS/2.5)
@@ -2903,7 +2903,7 @@ typedef uint32_t build_time_t;
#define BUILD_TIMES_TEST_FREQUENCY 60
/** Save state every 10 circuits */
-#define BUILD_TIMES_SAVE_STATE_EVERY 10
+#define BUILD_TIMES_SAVE_STATE_EVERY 10
typedef struct {
/** The circular array of recorded build times in milliseconds */