[MERGE] BEncode Revision Serializer

Jelmer Vernooij jelmer at vernstok.nl
Mon Jun 1 23:29:17 BST 2009


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

Hi John,

John Arbash Meinel wrote:
>
> ...
>
>> Anyway, I would like to postpone landing this until I've gotten
>> some numbers for comparing it to the RIO based serializer, and
>> our existing XML based one. (Size/speed/etc).
>
>> I'll try to get that done today.
>
>> BB:comment
>
>> (I'm not really sure that we have a BB:wait until I give a full
> review :)
>
>> John =:->
>
> So here are the start of some numbers. This is the size of just the
>  'revisions' portion after compression.
>
> Raw    %    Compressed    %  Objects dev6             3990 KiB   0%
> 632 KiB   6%     1043 dev7-bencode     3851 KiB   0%       647 KiB
> 6%     1043 dev6-rio         3840 KiB   0%       632 KiB   6%
> 1043
>
> Notice that dev7-bencode is the largest of the group and
> dev6/dev6-rio are about the same size.
>
> I'm 75% sure that this is because we don't control the ordering of
> the data in the bencode form.
>
> Time to extract all 1000 Revisions: $ TIMEIT -s "b =
> Branch.open('dev7-rio/m'); b.lock_read(); \ revs =
> b.repository.get_ancestry(b.last_revision()); revs.pop(0); \
> b.repository.get_revisions(revs)" \ # Seed the request to avoid
> index "b.repository.get_revisions(revs)"
>
> dev6        157 msec per loop dev7-bencode    158 msec per loop
> dev7-rio    106 msec per loop
>
> Now, mysql revs are a bit a-typical because they have large
> revision properties, with bencoded per-file messages.
>
> Given that bencode is both larger and slower, though....
>
> Now, I realize that 'slower' seems to contradict what Jelmer saw
> when benchmarking a single revision deserialized lots of times.
>
> Given the above, though, it would seem prudent to benchmark both
> the RIO serializer and the BEncode serializer using UserTest and a
> bigger dataset (like all of bzr.dev as a baseline, but MySQL would
> be nice...)
Is this with both the BEncode revision serializer and the BEncode
Pyrex patch? I only saw the performance improvements with both.

Cheers,

Jelmer
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iJwEAQECAAYFAkokVjsACgkQDLQl4QYPZuWx5wP9Fv8dJ4qkuhOSej5hZn8iRT51
YB5FBDNssWTge7MwkComhbQp21GRMRLgT4K79/gdhMBlJOLbtoJzVxB7jcL26m4U
ZxHsxij/P4LVO3WkjPR91benfN/eJE3X/u0AEqQn8S15+muoa5fXQhpmJwf3onxH
VgnsRK5jrUrkpm7kDL0=
=ALvC
-----END PGP SIGNATURE-----




More information about the bazaar mailing list