[tor-bugs] #9321 [Tor]: Load balance right when we have higher guard rotation periods

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun Aug 10 12:17:16 UTC 2014


#9321: Load balance right when we have higher guard rotation periods
-------------------------+-------------------------------------------------
     Reporter:  arma     |      Owner:
         Type:  project  |     Status:  new
     Priority:  normal   |  Milestone:  Tor: 0.2.6.x-final
    Component:  Tor      |    Version:
   Resolution:           |   Keywords:  needs-proposal, tor-auth, tor-
Actual Points:           |  client, 026-triaged-1
       Points:           |  Parent ID:  #11480
-------------------------+-------------------------------------------------

Comment (by asn):

 OK, I have some ideas on how this might get deployed to directory
 authorities.

 I now have two scripts: One script (`summizer.py`) summarizes consensuses
 into compact summary files, and the next script (`guardiness.py`)
 calculates the guardiness of nodes given a bunch of summary files. In the
 end, `guardiness.py` outputs a file with the guardiness information that
 is to be read by little-t-tor before forming a vote.

 When a directory authority operator wants to start using the guardiness
 system (bootstrap), she makes a '''consensus directory''' and downloads 3
 months worth of consensuses in there (probably from metrics). Then she
 runs the `summizer.py` script which reads the consensuses from that
 directory, and saves a summary file for each consensus in a separate
 '''summary file directory'''. This step is expected to take 30 minutes or
 so.

 Then the dirauth operator will add a cron job, similar to the one for bw
 auths, that triggers in the 35th minute of each hour (or something). This
 cron job does the following:
 * Download latest consensus from metrics.
 * Run `summizer.py` to summarize the new consensus (This should be instant
 since its just one consensus).
 * Run `guardiness.py 3 months` to calculate guardiness of all summary
 files in the summary directory from the past 3 months (This will take
 between a few seconds to 2 minutes of intense computation).

 Then 5 minutes before the hour, little-t-tor will read the guardiness
 output file and consider its data when voting.

 Some notes:

 * Instead of downloading the latest consensus from metrics, maybe we could
 add little-t-tor code that would save new consensuses into a directory.
 This way, we don't need to download bulk from metrics, apart from during
 the bootstrap procedure.

 * To avoid keeping old summary/consensus files around that take over disk
 space, I added some optional cleanup switches to the scripts.
 Specifically, the `summizer.py` script can delete the consensus files that
 got summarized and can also delete consensus files older than 3 months (or
 N months). Similarly, the `guardiness.py` script can delete summary files
 older than 3 months (or N months). The idea is that every time the cron
 job triggers, the `summizer.py` and `guardiness.py` scripts will auto-
 delete the oldest summary/consensus file, keeping in disk only the useful
 files.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/9321#comment:22>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list