all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Efraim Flashner <efraim@flashner.co.il>
To: Eric Bavier <ericbavier@centurylink.net>
Cc: guix-devel@gnu.org
Subject: Re: Compress VCS checkouts?
Date: Sat, 3 Feb 2018 22:10:39 +0200	[thread overview]
Message-ID: <20180203201039.GC1003@macbook41> (raw)
In-Reply-To: <20180202145011.6961c2c9@centurylink.net>

[-- Attachment #1: Type: text/plain, Size: 2424 bytes --]

On Fri, Feb 02, 2018 at 02:50:11PM -0600, Eric Bavier wrote:
> Hello Guix,
> 
> A while back I toyed with the idea of a "Sources DVD" for Guix, much
> like Trisquel has. While looking into the feasability of this, I
> noticed that the git/svn/cvs/hg checkouts our packages use are not
> compressed in the store.  So I wrote a simple script to compare the raw
> size of all source checkouts with their corresponding xz-compressed
> tarballs.  
> 
> At the time, I couldn't convince myself the trouble was worth the
> effort; we had only 385MiB of uncompressed source checkouts, which
> would compress to 135MiB.
> 
> Since that initial investigation, the number of packages using VCS
> checkouts has risen from 50 to 389, and the on-disk size of that source
> has risen to 3784MiB uncompressed.  We could compress that down to
> 538MiB.
> 
> Compression in not free, but I think it would be nice for our build
> servers who have to store and serve (which, iirc, requires them to
> compress it anyhow) this source.
> 
> What do people think?
> 
> `~Eric

> name                                  path                                                           size (MiB) tar.xz    rel%
> footswitch                            cwrqb...-footswitch-0.1-1.7cb0a93-checkout                          0.04    0.01   17.5%
< snip >
> ------------------------------------------------------------------------------------------------------------------------------
> TOTALS:                                                                                                3783.86  538.07   18.6% (median)

In case anyone else had to look at it twice, that's the relative size of
the new tarred source compared to the original. The sources don't change
very often, so the cost of the initial compression doesn't come up much,
and serving compressed data should be much faster. Interestingly, on
machines with the store on an external HDD, it might be faster to load
and unpack the source to ram than to just copy over USB2.

It does make grepping through the source in the store harder, but we
already couldn't do that with the tarballs. I think it would be overall
a positive change.


-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2018-02-03 20:10 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-02 20:50 Compress VCS checkouts? Eric Bavier
2018-02-03 20:10 ` Efraim Flashner [this message]
2018-02-05 10:27 ` Ludovic Courtès
2018-02-06  0:49   ` Eric Bavier
2018-02-07 21:56     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180203201039.GC1003@macbook41 \
    --to=efraim@flashner.co.il \
    --cc=ericbavier@centurylink.net \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.