Gentoo Archives: gentoo-dev

From: Alec Warner <antarus@g.o>
To: Gentoo Dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] RFC: Hosting daily gx86 squashfs images and deltas
Date: Fri, 17 Jan 2014 18:19:09
Message-Id: CAAr7Pr-pcXPvF_GZOKUQz3yqGkfycowF11o23vwnOohQYUa1ag@mail.gmail.com
In Reply to: [gentoo-dev] RFC: Hosting daily gx86 squashfs images and deltas by "Michał Górny"
1 On Fri, Jan 17, 2014 at 8:27 AM, Michał Górny <mgorny@g.o> wrote:
2
3 > Hello, all.
4 >
5 > I'm using squashfs to hold my Gentoo repositories on all of my systems
6 > for some time. As you probably know, this allows me to save space while
7 > keeping portage fast. However, it makes updating the tree quite
8 > burdensome and time-consuming.
9 >
10 > We're already hosting daily gx86 tarballs on our mirrors, and deltas
11 > made using diffball. Those can be used with Zac's emerge-delta-webrsync
12 > to get daily updates done with minimal network overhead. Sadly, it
13 > takes the whole process even more time consuming :).
14 >
15 > Therefore, I'd like to suggest an alternative solution that could help
16 > out Gentoo users that use squashfs for gx86 and would like to be able
17 > to get daily updates fast and easy.
18 >
19 > The idea is to host -- along with the tarballs -- daily squashfs images
20 > of gx86 in a chosen format. Additionally, the images would come with
21 > deltas made using xdelta3 or a similar tool. Those deltas -- with
22 > a slight download overhead -- would allow very fast updates
23 > of the squashfs.
24 >
25 > Now some numbers. I did some tests 'converting' late gx86 daily
26 > tarballs to squashfs. I've used squashfs 4.2 with LZO compression
27 > since it's quite good and very fast.
28 >
29 > 96M portage-20140108.sqfs
30 > 96M portage-20140109.sqfs
31 > 96M portage-20140110.sqfs
32 > 96M portage-20140111.sqfs
33 > 96M portage-20140112.sqfs
34 > 96M portage-20140113.sqfs
35 > 97M portage-20140114.sqfs
36 > 97M portage-20140115.sqfs
37 >
38 > For deltas, I've used xdelta3 with max compression (-9) and djw
39 > secondary compression (it gave ~0.1M smaller files than fgk
40 > and ~0.5M gain than with no secondary compression).
41 >
42 > 4,9M portage-20140108.sqfs-portage-20140109.sqfs.vcdiff.djw
43 > 6,3M portage-20140109.sqfs-portage-20140110.sqfs.vcdiff.djw
44 > 5,6M portage-20140110.sqfs-portage-20140111.sqfs.vcdiff.djw
45 > 8,9M portage-20140111.sqfs-portage-20140112.sqfs.vcdiff.djw
46 > 6,3M portage-20140112.sqfs-portage-20140113.sqfs.vcdiff.djw
47 > 7,8M portage-20140113.sqfs-portage-20140114.sqfs.vcdiff.djw
48 > 8,5M portage-20140114.sqfs-portage-20140115.sqfs.vcdiff.djw
49 >
50 > As you can see, the deltas are quite large compared to the actual
51 > changes. However, we could have expected that since we're diffing
52 > a compressed filesystem. What's important, however, is that applying
53 > it takes ~2.5 second on my 2 GHz Athlon64.
54 >
55
56 It wasn't clear to me, are these trees with metadata included?
57
58 -A
59
60
61 >
62 > So, even with the extra download time, the update is much faster
63 > than recreating the squashfs. And unlike some types of unionfs,
64 > it doesn't come with extra runtime slowdown.
65 >
66 > What do you think?
67 >
68 > --
69 > Best regards,
70 > Michał Górny
71 >

Replies

Subject Author
Re: [gentoo-dev] RFC: Hosting daily gx86 squashfs images and deltas "Michał Górny" <mgorny@g.o>