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

From: Liliana Marie Prikler <[email-masked]>
Date: Thu, 21 Jul 2022 20:02:41 +0200

Am Donnerstag, dem 21.07.2022 um 11:21 +0200 schrieb Ludovic Courtès:
> Hi,
> 
> Tobias Geerinckx-Rice <[email-masked]> skribis:
> 
> > Liliana Marie Prikler 写道：
> > > scheme@(guile-user)> ,t (length (scandir "/gnu/store/.links"))
> > > $1 = 213027
> > > ;; 1417.872747s real time, 28.514293s run time.  1.284866s spent
> > > in
> > > GC.
> > 
> > […]
> > 
> > > So yeah, assuming that scandir scales linearly
> > 
> > …your rotational drive is beyond ridiculously slower than mine (an
> > ST1000DM010-2EP102):
> > 
> > athena.tobias.gr:~ λ echo 3 | sudo tee /proc/sys/vm/drop_caches 3
> > athena.tobias.gr:~ λ guix repl
> > […]
> > scheme@(guix-user)> ,use (ice-9 ftw)
> > scheme@(guix-user)> ,t (length (scandir "/gnu/store/.links"))
> > $1 = 164437
> > ;; 7.081361s real time, 2.569773s run time.  0.199963s spent in   
> > GC.
> 
> It’s crazy that there are two orders of magnitude of difference
> between these two hard disks.
> 
> Liliana, is your hard disk old or low-end?
I'm not too sure about age, but it's probably low-end in terms of
speed.  There's room for 2TB data after all.

> I agree that we should strive to have good performance on that kind
> of hardware too, but I don’t know how to get there.
I don't think deleting links will ever be fast on that disk.  But what
I've been saying the whole time is that I don't always need the links
deleted.  I think adding "expert" switches to skip these phases might
actually be enough – after all, if I ever do want to run a full GC, the
information ought to be the same, no?