Subject: ‘guix system vm-image’spends a very long time “registering closures”
From: [email-masked] (Ludovic Courtès)
To: [email-masked]
Cc: Leo Famulari <[email-masked]>
Date: Fri, 31 Aug 2018 12:07:19 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

A couple of days ago, Leo reported that ‘guix system vm-image’ spends a
very long time in the “registering closures” phase:

--8<---------------cut here---------------start------------->8---
<lfam> I wonder about the slowness of 'registering closures' with `guix system
       vm-image` and similiar commands. I don't remember this taking so long
       in the past  [22:52]

[...]

<lfam> Created a bare-bones VM takes ~90 minutes for me recently
<lfam> s/Created/Creating
<civodul> with vm-image?
<lfam> Yes

[...]

<lfam> With #:reset-timestamps #f, I cancelled the task after 10 minutes of
       'registering closures'  [23:33]

[...]

<civodul> lfam: i added some pk's and it seems that it's deduplucation that's
	  killing us  [00:41]
<civodul> because it involves retraversing each store item and reading each
	  file  [00:42]
<lfam> It does it for each file?
<lfam> Or, you could just point me to the relevant code so I can learn it :)
<civodul> yeah, it has to read them to be able to determine if there are
	  duplicates
<civodul> (guix store database) calls the deduplication code  [00:43]
<civodul> which is in (guix store deduplication)
<civodul> (reepca's code from last year's GSoC)
<civodul> maybe c45477d2a1a651485feede20fe0f3d15aec48b39 or something close
	  inadvertently turned on deduplication  [00:44]
<civodul> so in (gnu system vm), we could pass #:deduplicate? #f to
	  'root-partition-initializer'
--8<---------------cut here---------------end--------------->8---

Ludo’.