|
From: | Zbynek Winkler |
Subject: | Re: [Monotone-devel] Re: Support for binary files, scalability andWindows port |
Date: | Tue, 27 Jan 2004 12:46:51 +0100 |
User-agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031208 |
graydon hoare wrote:
[snip] as of 2 nights ago, I have a prototype working which synchronizes block collections in a pair of sqlite databases, over a TCP connection. it shows pretty good promise; the interactive protocol isn't *quite* pipelined enough, plus the encodings could use some tuning; it's at least twice as bulky as it needs to be. even now it finds and sends the 50 missing random 512-byte blocks amongst a collection of 10,000 such, with only 16k written and 130k received (including the 34.7k worth of base64-encoded data blocks). it will add a little overhead in the case of small collections, but the cost curve is a very flat logarithm of the collection size.I'm not certain a 256-ary tree is the best fan-out though; I only chose it because it's easy to prototype in ASCII. a 16-ary tree is equally easy, so maybe I'll run through that too.. it is a subtle issue: larger nodes mean fewer round trips and less protocol chatter, but also more retransmission of hash values for unchanged portions of the tree and a bit more asymmetry in the transmit/receive load (as in this instance). I'll see if it's sufficiently easy to make the whole protocol and hashtree calculator depend on a couple template constants, and try to write it that way so we can wiggle it around and find a sweet spot.
How is it going? Zbynek -- http://zw.matfyz.cz/ http://robotika.cz/ Faculty of Mathematics and Physics, Charles University, Prague, Czech Republic
[Prev in Thread] | Current Thread | [Next in Thread] |