[MERGE] Transport support for pack repositories

Robert Collins robertc at robertcollins.net
Sun Aug 5 11:09:34 BST 2007


This adds two transport features supporting pack repositories:
    * New method
``bzrlib.transport.Transport.get_recommended_page_size``.
      This provides a hint to users of transports as to the reasonable
      minimum data to read. In principle this can take latency and
      bandwidth into account on a per-connection basis, but for now it
      just has hard coded values based on the url. (e.g. http:// has a  
      large page size, file:// has a small one.) (Robert Collins)

    * New methods on ``bzrlib.transport.Transport`` ``open_file_stream``
      and ``close_file_stream`` allow incremental addition of data to a
      file without requiring that all the data be buffered in memory.
      (Robert Collins)

With the open_file_stream support doing a pull from rev 0 to 2000 of
bzr.dev from a knit repo to a pack repo locally drops from 46 to 36
seconds.

I'm not 100% sure that the SFTP implementation of open_file_stream
is /correct/ - input on that would be good. However, even if its wrong I
think that we probably want a local 64K or so buffer in there, unless
write() is non-blocking on SFTP file objects.

-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/20070805/17c4b6f0/attachment.pgp 


More information about the bazaar mailing list