Merging a bundle w/ a pack repository is slow

Robert Collins robertc at robertcollins.net
Fri Nov 30 22:07:53 GMT 2007


On Thu, 2007-11-29 at 23:04 -0500, Aaron Bentley wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Robert Collins wrote:
> > I'd really really like to have a no-compromise approach to packs.
> 
> We aren't ready for a no-compromise approach to packs.  At minimum, we
> would need a way of finding the ancestry difference between two
> revisions' ancestries that is trustworthy and has nice scaling properties.
> 
> Until we have that, there are many get_ancestry calls we can't eliminate.

I haven't profiled graph.difference(); is it not good? I'll be happy to
work on that if thats a key element to eliminating get_ancestry.

> > We
> > know that the old approach of O(history) operations does not work, and
> > we have to fix it.
> 
> If you are proposing to fix it before 1.0, okay.  But if the release
> slips or performance is bad because of your no-compromise attitude, I
> will not be happy.

I've ack'd that we may need john's workaround for release branches. I
think that if packs are not good enough *across our core commands* with
the current code base, that they should not be default. 

> > We're not punishing code that uses bad api's, we *removing* the
> > constraint that made bad apis no worse than good api's
> 
> Actually, we're doing a third thing: punishing our users for using
> packs.  If packs aren't fast for users, what are they for?

They are first in a series of incrementally better formats that deliver
better performance in growing parts of the code base. The currently
delivered pack format is faster for nearly all operations that do
partial history; the next format should bring
incremental-access-to-all-index-data back up to near knit performance,
modulo the fact we have separate indices to read; as well as improving
partial performance further. Updating the inventory will give us better
performance in another whole range of primitive operations; finally
changing the delta logic will give us a 50% time reduction in network
operations due to halving (commonly) the storage size for a repository.

Right now, packs are faster for the very inner most core operations. And
have considerably better dumb server network performance.

-Rob


-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20071201/f769aa45/attachment.pgp 


More information about the bazaar mailing list