Subject: Re: bug#51427: [PATCH] nix: libstore: Do not remove unused links when deleting specific items.

From: Liliana Marie Prikler <[email-masked]>
Date: Tue, 19 Jul 2022 20:42:42 +0200

Am Dienstag, dem 19.07.2022 um 10:34 +0200 schrieb Ludovic Courtès:
> Hi,
> 
> Liliana Marie Prikler <[email-masked]> skribis:
> 
> > Am Montag, dem 18.07.2022 um 15:57 +0200 schrieb Ludovic Courtès:
> > > Hello,
> > > 
> > > With commit 472a0e82a52a3d5d841e1dfad6b13e26082a5750 (Nov. 2021),
> > > partially fixing <https://issues.guix.gnu.org/24937>, there is
> > > hopefully less pressure to skip the remove-unused-links phase.
> > > 
> > > Should we close this issue?
> > As a hard disk user, I'm leaning towards "no".
> 
> At the REPL, could you do:
> 
>   ,use(ice-9 ftw)
>   ,t (length (scandir "/gnu/store/.links"))
> 
> ?
> 
> On my SSD I get:
> 
>   $4 = 438356
>   ;; 24.613712s real time, 10.195698s run time.  1.805636s spent in GC.
scheme@(guile-user)> ,use (ice-9 ftw)
scheme@(guile-user)> ,t (length (scandir "/gnu/store/.links"))
$1 = 213027
;; 1417.872747s real time, 28.514293s run time.  1.284866s spent in GC.
scheme@(guile-user)> (/ 1417.872747 60)
$2 = 23.63121245

So yeah, assuming that scandir scales linearly, if my store was as big
as yours, I could eat lunch and GC still wouldn't be finished (for
context, lunch breaks in my country are only 30 minutes).