Round one of usertest results on brisbane-core formats

John Arbash Meinel john at arbash-meinel.com
Tue Feb 17 15:23:04 GMT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ian Clatworthy wrote:
> See attached. It's less interesting than hoped, sorry. The branch
> was the mysql trunk shortly after it was first converted to Bazaar.

Do you have a revno / revision id ?

> 
> In summary:
> 
> * upgrading on the fly isn't going to work as a benchmarking strategy here
>   (it took my benchmarking machine several days to spit these numbers out)
> 
> * --development4-hash16 takes less space than --development4-hash255
> 
> * branching a dev4h255 is faster than branching a dev4h16 branch but
>   both are still very slow
> 
> * the other times look bogus (particularly the log figures) suggesting
>   that the branch command has issues anyway. Digging needed.
> 
> Note that the upgrade process is probably leaving a copy of the old
> branch around (in backup_bzr or whatever it's called) so the total
> space figures listed actually mean a huge improvement, not an increase.
> (I ought to tweak the UpgradeTask in usertest to delete the old stuff.)
> 

Perhaps. I wouldn't be too surprised to see a 2x increase, though.
Remember that these inventories have no delta compression (yet).

> Ian C.
> 

Something seems funny here:
Log:log                32.4      31.9       0.2       0.2       0.2
Log:logOneFile          5.7       6.9       0.2       0.2       0.2

Namely, even if it is log -v, it still seems that we have the time to
compute dotted revnos, so I don't see it going all the way down to 0.2s.

16 hours to upgrade... I'm pretty sure I can beat that with a bit of
"cheating". Most notably:

=== modified file 'bzrlib/xml8.py'
- --- bzrlib/xml8.py      2008-12-13 03:19:40 +0000
+++ bzrlib/xml8.py      2009-02-17 15:18:55 +0000
@@ -428,10 +428,10 @@
                 pass
             else:
                 # Only copying directory entries drops us 2.85s => 2.35s
- -                # if cached_ie.kind == 'directory':
- -                #     return cached_ie.copy()
- -                # return cached_ie
- -                return cached_ie.copy()
+                if cached_ie.kind == 'directory':
+                    return cached_ie.copy()
+                return cached_ie
+                # return cached_ie.copy()

         kind = elt.tag
         if not InventoryEntry.versionable_kind(kind):


Changing this means that our "InventoryFile" objects are not copied.
Which means that:

a) We don't spend the time to .copy() them
b) Diffing 2 trees can use "x is y" which is very fast, rather than
comparing all of the attributes.

It is cheating because at least some of our test suite mutates the
objects that it gets (I haven't found any core code that does).

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkma1lgACgkQJdeBCYSNAAMm6gCaAzVXPXgd1h5SPrIJ3+4DJsCn
WGEAoLCIymjwLyqYQMXd3ejGLre2b5/d
=ur1q
-----END PGP SIGNATURE-----



More information about the bazaar mailing list