commit 0309d926649563012535b64869871b5bfa90c15e
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Sat May 21 13:44:50 2011 +0200
Provide Torperf experiment tarballs.
Previously, we were listing the .data and .extradata files of the last
running Torperf experiment. That's not really helpful for anyone.
Now, we provide all .data and .extradata files of a completed experiment
as a single tarball.
Only the default Torperf runs are still provided as single files, because
they are continuously updated.
---
.../torproject/ernie/web/ResearchDataServlet.java | 19 ++++++++++++
web/WEB-INF/data.jsp | 31 ++++++++++++++------
2 files changed, 41 insertions(+), 9 deletions(-)
diff --git a/src/org/torproject/ernie/web/ResearchDataServlet.java b/src/org/torproject/ernie/web/ResearchDataServlet.java
index 5186ca8..b863920 100644
--- a/src/org/torproject/ernie/web/ResearchDataServlet.java
+++ b/src/org/torproject/ernie/web/ResearchDataServlet.java
@@ -76,6 +76,8 @@ public class ResearchDataServlet extends HttpServlet {
SortedMap<String, Map<String, String[]>> torperfData =
new TreeMap<String, Map<String, String[]>>();
SortedMap<Date, String[]> exitLists = new TreeMap<Date, String[]>();
+ SortedMap<Date, String[]> torperfExperiments =
+ new TreeMap<Date, String[]>();
SortedMap<Date, String[]> bridgePoolAssignments =
new TreeMap<Date, String[]>();
@@ -200,6 +202,22 @@ public class ResearchDataServlet extends HttpServlet {
}
torperfData.get(source).get(filesize)[isExtraData ? 1 : 0] = url;
+ /* URL contains Torperf experiment tarball. */
+ } else if (filename.startsWith("torperf-experiment-20")) {
+ String yearMonth = filename.substring(filename.indexOf("20"));
+ yearMonth = yearMonth.substring(0, 7);
+ Date month = null;
+ try {
+ month = monthFormat.parse(yearMonth);
+ } catch (ParseException e) {
+ /* Ignore this URL. */
+ continue;
+ }
+ if (!torperfExperiments.containsKey(month)) {
+ torperfExperiments.put(month, new String[2]);
+ }
+ torperfExperiments.get(month)[0] = url;
+
/* URL contains exit list. */
} else if (filename.startsWith("exit-list-20")) {
String yearMonth = filename.substring(filename.indexOf("20"));
@@ -242,6 +260,7 @@ public class ResearchDataServlet extends HttpServlet {
request.setAttribute("relayStatistics", relayStatistics);
request.setAttribute("torperfData", torperfData);
request.setAttribute("exitLists", exitLists);
+ request.setAttribute("torperfExperiments", torperfExperiments);
request.setAttribute("bridgePoolAssignments", bridgePoolAssignments);
request.getRequestDispatcher("WEB-INF/data.jsp").forward(request,
response);
diff --git a/web/WEB-INF/data.jsp b/web/WEB-INF/data.jsp
index fdd5a69..da4ceb4 100644
--- a/web/WEB-INF/data.jsp
+++ b/web/WEB-INF/data.jsp
@@ -208,15 +208,10 @@
<a name="performance"></a>
<h3>Performance data</h3>
<br>
- <p>We are measuring the performance of the Tor network by
- periodically requesting files of different sizes and recording the
- time needed to do so. The main measurements on moria, siv, and
- torperf use an unmodified Tor client. The four additional setups
- on torperf are configured to pick their guard nodes from sets of
- the a) absolute fastest, b) absolute slowest, c) best rated vs.
- advertised ratio or d) worst rated vs. advertised ratio nodes. The
- ratio mechanisms provide a way to select the nodes that the
- bandwidth authorities think stand out in their measurement. The
+ <p>We are continuously measuring the performance of the Tor
+ network by periodically requesting files of different sizes and
+ recording the time needed to do so. These measurements take place
+ on moria, siv, and torperf and use an unmodified Tor client. The
files below contain the output of the torperf application and are
updated every hour:</p>
<table width="100%" border="0" cellpadding="5" cellspacing="0" summary="">
@@ -257,6 +252,24 @@
</c:forEach>
</table>
<br>
+ <p>We further conducted additional experiments with Torperf in the
+ past by modifying the guard node selection strategies or circuit
+ build timeouts. The modified guard node selection strategies are
+ to pick guard nodes from sets of the a) absolute fastest, b)
+ absolute slowest, c) best rated vs. advertised ratio or d) worst
+ rated vs. advertised ratio nodes. The ratio mechanisms provide a
+ way to select the nodes that the bandwidth authorities think stand
+ out in their measurement. Experiments are listed by the date when
+ they ended. Details about the experiment setup are contained in a
+ README file in the tarballs.</p>
+ <table width="100%" border="0" cellpadding="5" cellspacing="0" summary="">
+ <c:forEach var="item" items="${torperfExperiments}" >
+ <fmt:formatDate var="endDate" pattern="MMMM dd, yyyy"
+ value="${item.key}"/>
+ <tr><td><a href="${item.value[0]}">${endDate}</a></td></tr>
+ </c:forEach>
+ </table>
+ <br>
<a name="exitlist"></a>
<h3>Exit lists</h3>
<br>