[tahoe-dev] Automatic rebalancing

Brian Warner warner at lothar.com
Mon Dec 6 00:14:37 UTC 2010


On 12/5/10 3:52 PM, James A. Donald wrote:
> 
> A centralized coordinator is single point of failure and an additional
> configuration issue. If everyone runs the same algorithm, they will
> mostly agree without need for a central coordinator - though there
> will never be 100% agreement. If the system tolerates partial
> agreement without hard failure, one can usually do away with central
> coordinators.

Yeah. As I think I've written before, the Tahoe share-placement
algorithm needs to be a compromise between several different goals:

 * diversity (of location, of administration, of failure modes), to
   improve reliability
 * proximity (to the uploader, to the downloader), to improve upload
   speed, or download speed by various downloaders
 * discoverability (offline computability of likely share locations), to
   improve download speed by minimizing do-you-have-share queries
 * load-balancing (avoiding storage "hot spots", spreading bandwidth or
   storage requirements uniformly across servers, or better)
 * compression of location data (the filecap is the only per-file
   information transferred from uploader to downloader: putting a
   complete share-location list in each filecap would make them very
   large)

The current immutable downloader is tolerant of wrong information or
misplacement because it will fall back to asking every single server,
but that's problematic for large grids, especially if there's a chance
that your file doesn't really exist. The mutable retrieval code is less
forgiving, as it gives up eventually.

I like our tolerant downloader, and think we can avoid a central
coordinator, but we may need some new mechanisms to accomodate more of
those goals at the same time. For example, we could keep storage servers
more-or-less informed of the location of other shares for the files they
are handling: as long as a client can find any one shares, the resulting
server can help them file several other shares.

I think tickets #362, #447, #699, and others in the "code-peerselection"
category are relevant.

cheers,
 -Brian


More information about the tahoe-dev mailing list