Subject: [bug#40236] [PATCH] doc: Suggest Btrfs with compression instead of ext4 for root partition.

From: Efraim Flashner <[email-masked]>
Date: Mon, 1 Jun 2020 09:16:03 +0300

> >
> > Two more things:
> > /var/guix/db should probably have CoW disabled, as should /tmp
> 
> I haven't bothered and my system seems to be doing OK.  When I asked in
> #btrfs, people told me to keep CoW unless I was really sure it was a
> problem (i.e., run benchmarks), as it implies loosing the checksum
> validation and compression.  The command 'man 5 btrfs' also states that
> "Updates in-place improve performance for workloads that do frequent
> overwrites, at the cost of potential partial writes, in case the write
> is interrupted (system crash, device failure).", which doesn't sound
> safe to do for something as important as /var/guix/db.

Fair enough. I had heard that the CoW stuff wasn't great for databases.
I thought Leo ran into some issues with CoW on /tmp with the syncthing
tests.

> > would the deduplication of btrfs be "better" than the deduplication from
> > the daemon?
> 
> On my system (with zstd compression), compsize -x /gnu/store suggests
> a resounding yes:
> 
> --8<---------------cut here---------------start------------->8---
> sudo compsize -x /gnu/store
> Processed 3479664 files, 954748 regular extents (3002677 refs), 1451082 inline.
> Type       Perc     Disk Usage   Uncompressed Referenced
> TOTAL       57%       51G          88G         217G
> none       100%       32G          32G          81G
> zstd        33%       18G          56G         135G
> --8<---------------cut here---------------end--------------->8---
> 
> The delta between the Uncompressed and Referenced column is attributed
> to the deduplication done by Btrfs, and provides massive space savings
> in my case (this is just for /gnu/store).
> 
> I'd need 217 GiB over a traditional fs such as EXT4 to hold my current
> store, while an uncompressed Btrfs partition would use only 88 GiB.
> With zstd compression, it's down to 51 GiB, or less that a quarter of
> what would have been required using EXT4.

I always understood that as with compression you're using 51G instead of
88G, and because of deduplication from the daemon it would only be 88G
instead of 217G. I took the numbers from 'none' to mean that the daemon
itself already did a lot of deduplication.

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