[BitTorrent] Have maps (was Merkle, URLs, etc)

Joseph Ashwood ashwood at msn.com
Thu Mar 17 08:26:19 EST 2005


A few addendums before I forget.

There are more optimum ways of representing the head than what I had 
suggested earlier. The first efficient one that comes to adds a byte, the 
upper 4 bits of the new byte are the length in bytes of nodeSize, the second 
4-bits the size of numChildren in bytes. This increases the maximum size to 
2^128, and in the average case will probably keep both in 16-bits. This 
means the same structure can be maintained for filesizes up to 2^256 bytes.

The numChildren varies in one other case that I believe should be clearly 
allowable. In the case of multi-file torrents an n-ary design with arbitrary 
numbers of children in the root allows the multi-file torrent to share data 
space with the single-file torrents, and by relation multi-file torrents to 
share data space with each, assuming the two torrents share at least one 
file.

There is an additional case where numChildren*headsize <> nodesize. Although 
I didn't implement for it, it is entirely possible to have an edge node 
include data after the child heads, this can be used to increase node space 
efficiency, at the cost of design complexity, or to avoid having a last tiny 
child. As for how to deal with this, since the file data comes after the 
child node heads, the file data in the node comes _after_ the data from the 
children. Not sure how beneficial this is for actual circumstances since the 
number of internal nodes is generally rather low, but the efficiency metric 
I introduced before will move to 100% for all node sizes, with a 
corresponding slight decrease in total overhead. I don't think it's worth 
doing, the benefits are too small, and the added complexity can become quite 
large in creation, so it is unlikely to be used much, and prone to improper 
implementation.
                Joe 



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/BitTorrent/

<*> To unsubscribe from this group, send an email to:
    BitTorrent-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 





More information about the BitTorrent mailing list