[RFC] Store all important data in KnitData
John Arbash Meinel
john at arbash-meinel.com
Fri Oct 26 23:24:39 BST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
The attached patch changes how we store the data in packs. Basically, the data
that used to only be stored in the KnitIndex is now also stored in the KnitData
itself.
This includes the ancestry graph parents, and a separate field for delta
parent. And whether or not the final text has a newline, and whether the data
itself is a delta or a fulltext.
There are a couple pieces that I'm not happy with (the InterKnit needs a better
way to detect that it needs to do the conversion). Also, as long as the Index
has data redundantly stored, it should probably be compared against the other
when extracting.
Data storage wise, the difference is actually pretty small. I converted all of
bzr.dev and with normal packs it is 63MB, with this extra data it is 65MB. I
attribute this to the gzip compression. I would expect even less effect if
packs were annotated, since it is very likely that the parent string already
exists in the knit data.
I don't know that we want to do this before we convert over to packs, but it
would mean we don't need yet another 'bzr upgrade'.
I'll probably also play with switching from gzip to using straight zlib, which
should be slightly faster and smaller.
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHImknJdeBCYSNAAMRAhwUAKCoU2dVSIBVv/prmGsDWRTz7wMo9ACfXPvL
PhljAmK1S+IkKYp6Alf83u4=
=QB9R
-----END PGP SIGNATURE-----
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: knit_parents.patch
Url: https://lists.ubuntu.com/archives/bazaar/attachments/20071026/80d1f190/attachment-0001.diff
More information about the bazaar
mailing list