[PATCH 6 of 8] obsolete: exchange obsolete marker over pushkey

Patrick Mézard patrick at mezard.eu
Thu Jun 7 12:56:56 CDT 2012


Le 07/06/12 19:24, pierre-yves.david at logilab.fr a écrit :
> # HG changeset patch
> # User Pierre-Yves.David at ens-lyon.org
> # Date 1339089719 -7200
> # Node ID e1d9043377d43a41c37f086aadfbe0552854c29a
> # Parent  740baee7f4950cb25ef79fa0782c1b8dfe8ffb92
> obsolete: exchange obsolete marker over pushkey
> 
> For a version of the exchange, all markers are exchange. This won't
> scale and we will need a better protocol later.

To elaborate a bit, there are 2 flavours of "won't scale":
- The obvious exchange everything all the time
- The less obvious exchange everything all the time *with pushkey*. Over HTTP, pushkey sends all the data in split HTTP headers, which easily exceeds both Apache default max header count (100). It is hard to provide numbers about the store size because the current obsolete/evolve extension uses another JSON base format which is much more verbose than this one, and because Pierre-Yves experimental mercurial evolving repository underwent several format upgrades which messed up the store, but right now it is around 2.2M for 5500 markers. To summarize, it is easy to reach a situation where the HTTP servers/proxies cannot handle the pushkey load. I do not think this is a problem unless people believe "won't scale" applies to Bryan-sized repositories. Note that you can work around this limitation with SSH.

Also, having used evolve for a few days to interact with Pierre-Yves changesets, I have to say I am pretty impressed by the workflow. Sure there is a lot of work to do on the visualization side (hgweb gets terribly confusing after 4 or 5 stabilize sessions) and I miss the kind of short changesets identifiers provided by mq, but overall the experience is pretty exciting.
--
Patrick Mézard


More information about the Mercurial-devel mailing list