Lookaside clone support proof of concept

Matt Mackall mpm at selenic.com
Fri Oct 5 17:19:38 CDT 2012

On Fri, 2012-10-05 at 22:44 +0200, Antoine Pitrou wrote:
> On Fri, 5 Oct 2012 15:23:00 -0500
> Augie Fackler <raf at durin42.com> wrote:
> > At the last sprint I talked some about an idea I had to extend (possibly via an extension) the wire protocol to allow some sort of advisory "go fetch from over there first" tricks. I finally got around to doing this today(see [0] for code), and it worked out pretty well. It's a little raw at the moment, but I think docstring on the module explains how to use it well enough. I think this might be most interesting at the moment to Mozilla (as implemented), but it's not hard to envision this letting you direct the client to pull from another (potentially lagged) repository before pulling from the mainline repository to spread out lag over more mirrors.
> Could you explain what it does, and why it's supposed to be helpful?

If you have a repository where clone speed is limited by the server CPU,
you can set up a static bundle with most of the repo contents which the
client can pull first at wire speed. This moves the bottleneck to either
client bandwidth or client unpack speed. The bundle can be updated by a
cronjob and hosted on a CDN or similar if server bandwidth is an issue.

Mathematics is the supreme nostalgia of our time.

More information about the Mercurial-devel mailing list