[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [torflow/master] Tweaks to try to make PID look more like other bw auths.
commit 335ce85c130c5ffef8525afb56f77ad423e12f9b
Author: Mike Perry <mikeperry-git@xxxxxxxxxx>
Date: Thu Nov 10 14:25:11 2011 -0800
Tweaks to try to make PID look more like other bw auths.
Just to make sure something crazy is not going on, let's try eliminating the
circ failure dampening, and re-instate the "larger ratio" idea for PID
control. With these both re-enabled, PID "feedback" should look more similar
to the other bandwidth auths, because with just one auth running the code,
there is no feedback.
---
NetworkScanners/BwAuthority/aggregate.py | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/NetworkScanners/BwAuthority/aggregate.py b/NetworkScanners/BwAuthority/aggregate.py
index be9c595..d1c8b45 100755
--- a/NetworkScanners/BwAuthority/aggregate.py
+++ b/NetworkScanners/BwAuthority/aggregate.py
@@ -139,7 +139,8 @@ class Node:
self.filt_bw = line.filt_bw
self.ns_bw = line.ns_bw
self.desc_bw = line.desc_bw
- self.circ_fail_rate = line.circ_fail_rate
+ # XXX: Temporary test
+ self.circ_fail_rate = 0.0 #line.circ_fail_rate
self.strm_fail_rate = line.strm_fail_rate
class Line:
@@ -360,6 +361,8 @@ def main(argv):
# socket exhaustion issues..
true_filt_avg = sum(map(lambda n: n.filt_bw*(1.0-n.circ_fail_rate),
nodes.itervalues()))/float(len(nodes))
+ true_strm_avg = sum(map(lambda n: n.strm_bw*(1.0-n.circ_fail_rate),
+ nodes.itervalues()))/float(len(nodes))
else:
true_filt_avg = sum(map(lambda n: n.filt_bw,
nodes.itervalues()))/float(len(nodes))
@@ -396,13 +399,17 @@ def main(argv):
tot_net_bw = 0
for n in nodes.itervalues():
n.fbw_ratio = n.filt_bw/true_filt_avg
-
- # Always use filtered bandwidths for feedback
- n.ratio = n.fbw_ratio
+ n.sbw_ratio = n.strm_bw/true_strm_avg
if cs_junk.bwauth_pid_control:
# Penalize nodes for circ failure rate
- n.pid_error = (n.filt_bw*(1.0-n.circ_fail_rate) - true_filt_avg)/true_filt_avg
+ # n.pid_error = (n.filt_bw*(1.0-n.circ_fail_rate) - true_filt_avg)/true_filt_avg
+
+ # FIXME: For now, let's try this larger-ratio thing..
+ if n.sbw_ratio > n.fbw_ratio:
+ n.pid_error = (n.strm_bw*(1.0-n.circ_fail_rate) - true_strm_avg)/true_strm_avg
+ else:
+ n.pid_error = (n.filt_bw*(1.0-n.circ_fail_rate) - true_filt_avg)/true_filt_avg
if n.idhex in prev_votes.vote_map:
# If there is a new sample, let's use it for all but guards
@@ -449,7 +456,6 @@ def main(argv):
plog("INFO", "No prev vote for node "+n.nick+": Consensus feedback")
else: # No PID feedback
# Choose the larger between sbw and fbw
- n.sbw_ratio = n.strm_bw/true_strm_avg
if n.sbw_ratio > n.fbw_ratio:
n.ratio = n.sbw_ratio
else:
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits