[mnet-devel] another download strategy
Zooko
zooko at zooko.com
Fri Mar 28 11:56:03 GMT 2003
Here's an alternative. We still have the "locate and download blocks rate"
measure as described in the previous attempt [1].
Keep a sorted list of blockservers, sorted by "locate and download blocks rate".
Whenever you want to download a block, you do so from the highest-ranked server
from that list that has a located block.
Whenever you want to search for blocks, you do so from the highest-ranked server
from that list that you haven't already searched for those blocks.
Now this has the funny property that when you choose a server to search for
blocks, you ignore the XOR metric! You don't go to a server that is close to
any particular the block in the XOR space, but instead you go to your favorite
server.
This is reminiscent of the joke about the drunk who lost his key, and looks for
it under the streetlight, not because that's where he lost it, but because
that's where it would be easiest to see.
If there are a lot of keys (blocks), and if they are evenly distributed, and if
you need only a fraction of them, then this looks like a good strategy!
...
But if there is only one block (e.g. an inode block), then this is a poor
strategy.
This suggests that the blockwrangler should remember which blocks are part of
which file. There are three ways blockwrangler can use this data:
1. If the block is 1-of-1 (e.g. an inode or a small file that fits into a
single data block), then blockwrangler should treat it differently.
2. If you are downloading two files, each of which is 1000-out-of-4000 blocks,
and he has already sent a "request block" request for 1100 different blocks of
the first file, and he's already gotten 900 successful responses, then he should
really not be sending out more "request block" requests for the first file, but
instead should send some out for the second file.
3. "Primary" shares are better than "secondary" in two ways:
3.a. Primary shares can be viewed incrementally, before the file is complete.
3.b. Primary shares don't cost a bunch of CPU churning when used to reconstruct
the complete file.
So overall I like this strategy a lot better than the previous one. It's
simpler and I *feel* like it'll perform better, but it might perform badly on
inode blocks and single-block-files without some added wrinkle.
Regards,
Zooko
[1] http://sourceforge.net/mailarchive/forum.php?thread_id=1892147&forum_id=7702
http://zooko.com/
^-- under re-construction: some new stuff, some broken links
-------------------------------------------------------
This SF.net email is sponsored by:
The Definitive IT and Networking Event. Be There!
NetWorld+Interop Las Vegas 2003 -- Register today!
http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en
_______________________________________________
mnet-devel mailing list
mnet-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mnet-devel
More information about the Mnet-devel
mailing list