regression? branching lp:branch into empty local shared repo is very slow

Martin Pool mbp at canonical.com
Mon Jan 11 01:50:06 GMT 2010


2010/1/11 Andrew Bennetts <andrew.bennetts at canonical.com>:
> What would be ideal is that the client sends a request like:
>
>  Request: get_parent_map(r9999,r8999,r7999,...r1)
>  Response: (no results)
>
> (1 round trip to find out there's no common history)

Right, that's what I think we should aim for.

> Although I worry a little that defaulting to loading the entire
> left-hand history locally might not be great for performance in other
> common cases.
>
> Hmm, I guess what's happening is that _walk_to_common_revisions is
> probably working as expected for a push from a local branch to a remote
> repo, but when the source is remote it queries the remote one-by-one...
> but that should mean it is returning results and thus should be
> expanding those results to 64kB.  So there's a mystery here.

Could you file a bug please?

>> > Perhaps a new variation of -Dhpss is called for (just like -Dhpssvfs)
>> > that shows a traceback whenever a get_parent_map request is sent with
>> > just one key?  Perhaps “-Dhpssevil”?
>>
>> We've been a bit hit-and-miss with options like that in the past.
>> What is the context in which it would be turned on?
>
> Well, the question I have at the moment is “what's the traceback leading
> to this inefficient request?”.  It's not too hard for a developer to
> just hack the code temporarily to start investigating this case... I was
> wondering aloud if this question occurs often enough to justify making
> it more convenient for devs (and users) to get this information.  I'm
> not at all sure it is, and it sounds like you don't think so either.
> Fair enough :)

There seems to be two different cases here: tell me when something's
gone wrong (more what I was thinking about) and tell me more about
something I know is going wrong.

If it were me I would probably put a pdb.set_trace() into the relevant
code.   I don't normally find that the cases where I want tracebacks
are sufficiently similar that a flag to pick up just one of them would
help, and often I want more than just a traceback.  But we probably
work on different populations of bugs.  Maybe a -Dhpss_traceback that
logs a traceback on every hpss call would be generally useful?

-- 
Martin <http://launchpad.net/~mbp/>



More information about the bazaar mailing list