source: trunk/docs/historical/peer-selection.txt

Last change on this file was 5d612c8, checked in by david-sarah <david-sarah@…>, at 2010-12-12T05:14:59Z

Update hyperlinks between docs, and linkify some external references. refs #1225

  • Property mode set to 100644
File size: 1.6 KB
Line 
1When a file is uploaded, the encoded shares are sent to other peers. But to
2which ones? Likewise, when we want to download a file, which peers should we
3ask for shares? The "peer selection" algorithm is used to make these choices.
4
5During the first tahoe meeting, (actualy on the drive back home), we designed
6the now-abandoned "tahoe1" algorithm, which involved a "cabal" for each file,
7where the peers involved would check up on each other to make sure the data
8was still available. The big limitation was the expense of tracking which
9nodes were parts of which cabals.
10
11When we release 0.2.0, we used the "tahoe3" algorithm (see
12peer-selection-tahoe3.txt), but in v0.6 (ticket #132) we switched back to
13"tahoe2" (see peer-selection-tahoe2.txt, and the PEER SELECTION section
14of docs/architecture.rst), which uses a permuted peerid list and packs the
15shares into the first 10 or so members of this list. (It is named "tahoe2"
16because it was designed before "tahoe3" was.)
17
18In the future, we might move to an algorithm known as "denver airport", which
19uses Chord-like routing to minimize the number of active connections.
20
21Different peer selection algorithms result in different properties:
22 * how well do we handle nodes leaving or joining the mesh (differences in the
23   peer list)?
24 * how many connections do we need to keep open?
25 * how many nodes must we speak to when uploading a file?
26 * if a file is unrecoverable, how long will it take for us to discover this
27   fact?
28 * how expensive is a file-checking operation?
29 * how well can we accomodate changes to encoding parameters?
Note: See TracBrowser for help on using the repository browser.