2.0 upgrade experiences

Robert Collins robert.collins at canonical.com
Wed Aug 12 21:21:34 BST 2009


On Wed, 2009-08-12 at 20:49 +1000, Martin Pool wrote:


> I'd like to improve this by
> 
> 1- Making the pack UI say something like this:
> 
>   Packing repository ..../career
>   5454MB in 12 packs....
>   Thinking hard.....
>   Now 1230MB in 1 pack, and 5454MB in 12 obsolete packs that will be
> deleted later

This is more explicit about whats going on. It feels like exposing
rather too much of the plumbing to me though :(. Most of our users won't
know:
 - what a pack means here
 - how much later these obsolete packs will be deleted
 - when its safe to delete manually.

SQL databases have a similar thing where temporary data causes disk
space to grow, then shrink - and I haven't yet seen applications that
build on them give me such warnings.

I wonder what it is about our case that makes people so interested and
concerned about this? 

> 2- Adding an option either to pack or to another command to remove
> obsolete packs, and mentioning this from the help for pack.  (There is
> a bug for this.)

I'm ok with this, as its manual and allows users to choose to increase
risk.

> The text I propose for #1 is perhaps not ideal, but at least it would
> give a clue that there's a reason why this is happening and it's not
> just something broken, and adding it may be less controversial than
> deleting these files.
> 
> I think if fsync was expensive but reliable and was only run from an
> explicitly requested repack that would be reasonable.  However, if
> it's not reliable and there's a chance that a crash near the end of
> packing could lose all your data, we can at least make it more obvious
> why this is happening.  I would note though that there's no guarantee
> that the fs will be able to safely read the renamed files.

Situations where we can never really know:
 - remote file systems that don't support fsync().
 - file systems/platforms where fsync() is crippled.

Situations we can know/improve on:
 - local and bzr: connections where the underlying fsync actually works.

> The pattern in bug reports seems to be:
> 
>  * The space bloat is a real cause for concern.
>  * People do suffer fs corruption - either lost files, or files with
> missing blocks.   There is a limit to how much we can work around this
> but not deleting files when they're immediately obsolete will probably
> help.
>  * I think the code that recovers from an unexpectedly-removed pack
> file is working well now, so we don't need the obsolete packs for the
> sake of supporting concurrent clients.

Agreed. Given that we rename on obsolescence, I don't think we've ever
really expected to support concurrent clients via those files. What we
have done is worked on windows via those files - as I recall it windows
supports a rename of an open-but-not-locked file.

-Rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20090813/f1eebfb4/attachment.pgp 


More information about the bazaar mailing list