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