Imminent MERGE request: 12 steps towards a high performance server

Andrew Bennetts andrew at canonical.com
Wed Sep 13 16:53:52 BST 2006


As Robert recently posted, we've got a fair few infrastructure changes in
support of the work on the high performance server.  There are lots of mostly
independent changes, so to ease the reviewing load I've split them into seperate
branches.  These branches are essentially a sequence of patches to be applied;
I think I'll post bundles for review in individual mails (so that each change
gets its own thread for discussion), but first here's an overview of what's they
all are, in order:

   http://people.ubuntu.com/~andrew/bzr/cosmetic/
     purely cosmetic changes -- docstring tweaks and the like.  Hopefully
     nothing controversial :)

   http://people.ubuntu.com/~andrew/bzr/sort-os.listdir-in-add.py/
     a one-line change to smart_add_tree to ensure a consistent ordering -- I
     recently enabled the 'dir_index' option on my ext3 filesystem, and it broke
     the test suite without this fix.

   http://people.ubuntu.com/~andrew/bzr/open_from_transport/
     add an open_from_transport method to bzrdir.py

   http://people.ubuntu.com/~andrew/bzr/BzrNewError.__str__/
     make BzrNewError.__str__'s error handling a bit more robust and bit more
     informative.

   http://people.ubuntu.com/~andrew/bzr/preserve-transport-when-creating-bzrdir/
     fix, with test, to ensure make_bzrdir preserves the transport

   http://people.ubuntu.com/~andrew/bzr/workingtree-creation-bug-fix/
     fix, with test, to how make_branch_and_tree makes workingtrees

   http://people.ubuntu.com/~andrew/bzr/extra-transport-tests/
     this adds a bunch of tests for transports, particularly about how the path
     handling at the root of a url works -- and fixes the bugs they reveal.

   http://people.ubuntu.com/~andrew/bzr/lock_read-lock_write-raise-TransportNotPossible/
     allow lock_read and lock_write to raise TransportNotPossible.  This branch
     accidentally has some refactoring of url handling in transports in it
     (possibly really belonging to extra-transport-tests?) too.

   http://people.ubuntu.com/~andrew/bzr/TestCaseWithTransport.get_url-fix/
     a small fix to TestCaseWithTransport.get_url

   http://people.ubuntu.com/~andrew/bzr/start-and-stop_bzr_subprocess/
     Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
     continue running concurrently with a subprocess of bzr.  This is useful for
     some tests in the next branch...

   http://people.ubuntu.com/~andrew/bzr/add-get_smart_client/
     Adds support for bzr:// and bzr+ssh:// urls, adds a new 'bzr serve'
     command, and adds a Transport.get_smart_client method.  This includes a
     SmartTransport, that performs file operations over the RPC added in this
     branch. 

   http://people.ubuntu.com/~andrew/bzr/remote-bzrdir/
     Adds a RemoteBzrDir class, etc, that simply proxies methods through to a
     real underlying bzrdir, and hooks the RemoteBzrDir and SmartTransport into
     the test suite.

Remember, each branch builds on the previous branch -- e.g. if you diff
remote-bzrdir against bzr.dev, you'll see *all* these changes combined, so if
you review these, you probably want to just review the diff against the previous
branch in this list.

It's likely that some of these changes aren't perfectly seperated, but it should
be easier to review than one big lump anyway.  It's possible that a couple of
the intermediate branches don't pass tests, although I have tried to check that
each branch makes a reasonable amount of sense on its own, it's very
time-consuming to do thoroughly.

Please feel free to start reviewing these branches.  I'd like to get as much of
this as possible into 0.11.

Seeking +12 ;)

-Andrew.





More information about the bazaar mailing list