← Back to team overview

launchpad-dev team mailing list archive

Re: Forking 'bzr lp-serve'

 

On Wed, Sep 15, 2010 at 8:26 AM, John Arbash Meinel
<john@xxxxxxxxxxxxxxxxx> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> So I've finally gotten the end-to-end code working, such that 'ssh lp
> bzr serve ...' can actually use a daemon which preloads some python
> libraries, forks for each request, and doesn't re-exec.
>
>  lp:~jameinel/launchpad/lp-service
>
>
> I think there is still a fair number of cleanup passes necessary, but I
> think for all of that I'm going to need a bit of help. Stuff like "where
> should I be putting the log files", etc.
>
> As such, what is the best way to progress forward? Put it up as a merge
> request? Get someone to pair with me for a little while to have a quick
> turn around for all those little questions?

I suggest:
 - get it reviewed and then either:
  - guard it with a featureflag so its inactive, and land it disabled
to be iterated on
  - keep tuning it until everything seems honky dory and then land
with shock and awe.

> Times for 'echo hello | ssh localhost -p 5022 bzr serve'
>
>  2.5s  baseline
>  0.8s  without twisted conch and 'lp-serve'
>  0.6s  'ssh localhost /bin/false' (openssh)
>  0.25s with forking

-nice-.

> So at this point, connecting to the 'lp' service is faster than running
> against openssh and spawning bzr directly. And, in general, it looks to
> shave most of the connection overhead. (The 250ms seems to be mostly
> fork() time, as lsprof only sees about 50ms in the client.)

This is awesome stuff and I'm so very very glad you've been working on it.

-Rob



Follow ups

References