Upgrades and image manifests
Alexander Larsson
alexl at redhat.com
Tue Jul 3 04:25:50 EDT 2007
On Mon, 2007-07-02 at 07:47 -0400, Dan Williams wrote:
>
> With updatinator, bsdiff-ing the changes between files and gzipping new
> files is the sweet spot. I tested plain blobs, gzipped blobs, bzip2-ed
> blobs, bsdiff + gzip, and bsdiff + bzip2. Unfortunately, bzip2's memory
> consumption on decompress isn't all that great according to other
> people's research, and gzip gives us the best balance between
> compression ratio and decompression mem/cpu usage.
>
> Scott, you may also want to re-test the rsync benchmarks using rsync
> compression to make the bandwidth numbers in the rsync benchmarks go
> down. You didn't mention anything specifically about using wire
> compression, but the numbers look like you hadn't used it?
>
> This patch adds bsdiff + gzip compression to updatinator:
>
> http://people.redhat.com/dcbw/updatinator-bsdiff-gzip.patch
Cool. I'll merge it.
> The difference sizes, using "du -csb" on the difference blob directory
> are as follows. This is the amount of data that would be transferred
> over the network, not including HTTP headers.
>
> 464->465: 6,869,799 bytes
> 465->466: 18,870,574 bytes
>
> The resulting image directories verify with both verify-manifest and
> diff -rua.
>
> As an improvement, we should provide a manifest-diff file for each
> update path (along with the manifests for the actual image) that lists
> the blobs with their own sha1 sum so that they are self-verifying. This
> would also simplify the patch quite a bit because there would be less
> path-munging. The diff-manifest tool that generates the blob diffs will
> output this data in a somewhat suitable format already.
As a different approach I was thinking of making the "manifest file"
just contain a sha1 has and a gpg sign, and then make the actual
manifest data a blob. That way we'd automatically reuse gzip and bsdiff
features from the blobs.
More information about the Devel
mailing list