all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Pjotr Prins <pjotr.public12@thebird.nl>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: /gnu/store/.links/
Date: Fri, 09 Feb 2018 18:00:02 +0100	[thread overview]
Message-ID: <87372ayu7h.fsf@gnu.org> (raw)
In-Reply-To: <20180209142400.GA6348@thebird.nl> (Pjotr Prins's message of "Fri, 9 Feb 2018 15:24:00 +0100")

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

> On Fri, Feb 09, 2018 at 01:11:23PM +0100, Ricardo Wurmus wrote:

[...]

>> I don’t know about scalability.  This number is still well below the
>> limits of ext4 file systems, but accessing a big directory listing like
>> that can be slow.  I would feel a little better about this if we split
>> it up into different prefix directories (like it’s done for browser
>> caches).  I don’t think it’s necessary, though.
>
> For ext4 it is going to be an issue. Anyway, we'll see what happens.

In practice, when the maximum number of links is reached, we simply
transparently skip deduplication.  See this commit:

  commit 12b6c951cf5ca6055a22a2eec85665353f5510e5
  Author: Ludovic Courtès <ludo@gnu.org>
  Date:   Fri Oct 28 20:34:15 2016 +0200

      daemon: Do not error out when deduplication fails due to ENOSPC.

      This solves a problem whereby if /gnu/store/.links had enough entries,
      ext4's directory index would be full, leading to link(2) returning
      ENOSPC.

      * nix/libstore/optimise-store.cc (LocalStore::optimisePath_): Upon
      ENOSPC from link(2), print a message and return instead of throwing a
      'SysError'.

It does scale well, and it’s been here “forever”.

If you’re wondering how much gets deduplicated, see
<https://lists.gnu.org/archive/html/guix-devel/2014-09/msg00422.html>.
:-)

Ludo’.

  reply	other threads:[~2018-02-09 17:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-09 11:22 /gnu/store/.links/ Pjotr Prins
2018-02-09 12:11 ` /gnu/store/.links/ Ricardo Wurmus
2018-02-09 14:24   ` /gnu/store/.links/ Pjotr Prins
2018-02-09 17:00     ` Ludovic Courtès [this message]
2018-02-09 17:56       ` /gnu/store/.links/ Pjotr Prins
2018-02-09 18:08       ` /gnu/store/.links/ Mark H Weaver
2018-02-09 18:23     ` /gnu/store/.links/ Leo Famulari

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=87372ayu7h.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=pjotr.public12@thebird.nl \
    /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.