diff mbox series

[bug#61324] download: Add bordeaux.guix.gnu.org as a content addressed mirror.

Message ID 20230206155505.6397-1-mail@cbaines.net
State New
Headers show
Series [bug#61324] download: Add bordeaux.guix.gnu.org as a content addressed mirror. | expand

Commit Message

Christopher Baines Feb. 6, 2023, 3:55 p.m. UTC
bordeaux.guix.gnu.org now provides access to some files by hash. This is done
through the nar-herder finding a nar produced by a fixed output derivation for
the requested content, and then providing the content stored inside that nar.

I've put this new entry at the start of the list, as I think it's more likely
to have content than the others. Because bordeaux.guix.gnu.org stores nars
indefinitely, my suspicion is that it's going to be able to fulfil more
requests than ci.guix.gnu.org, which relies on the file requested being in the
store (so the now frequent garbage collection is going to limit the files
available).

* guix/download.scm (%content-addressed-mirrors): Add bordeaux.guix.gnu.org.
---
 guix/download.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Ludovic Courtès Feb. 10, 2023, 10:41 p.m. UTC | #1
Hi!

Christopher Baines <mail@cbaines.net> skribis:

> bordeaux.guix.gnu.org now provides access to some files by hash. This is done
> through the nar-herder finding a nar produced by a fixed output derivation for
> the requested content, and then providing the content stored inside that nar.

Nice!

> I've put this new entry at the start of the list, as I think it's more likely
> to have content than the others. Because bordeaux.guix.gnu.org stores nars
> indefinitely, my suspicion is that it's going to be able to fulfil more
> requests than ci.guix.gnu.org, which relies on the file requested being in the
> store (so the now frequent garbage collection is going to limit the files
> available).

Right, could be.  (At one point we had nginx caching for /file URLs; not
sure if that’s still the case, and it wouldn’t really solve the
problem.)

> * guix/download.scm (%content-addressed-mirrors): Add bordeaux.guix.gnu.org.
> ---
>  guix/download.scm | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/guix/download.scm b/guix/download.scm
> index fff54d7a17..561a893eee 100644
> --- a/guix/download.scm
> +++ b/guix/download.scm
> @@ -387,7 +387,11 @@ (define (guix-publish host)
>                          file "/" (symbol->string algo) "/"
>                          (bytevector->nix-base32-string hash))))
>  
> -     (list (guix-publish "ci.guix.gnu.org")
> +     (list (guix-publish
> +            ;; bordeaux.guix.gnu.org uses the nar-herder rather than guix
> +            ;; publish, but it supports the same style of requests
> +            "bordeaux.guix.gnu.org")
> +           (guix-publish "ci.guix.gnu.org")

LGTM, thanks!

Ludo’.
Christopher Baines Feb. 11, 2023, 9:04 p.m. UTC | #2
Ludovic Courtès <ludo@gnu.org> writes:

>> * guix/download.scm (%content-addressed-mirrors): Add bordeaux.guix.gnu.org.
>> ---
>>  guix/download.scm | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/guix/download.scm b/guix/download.scm
>> index fff54d7a17..561a893eee 100644
>> --- a/guix/download.scm
>> +++ b/guix/download.scm
>> @@ -387,7 +387,11 @@ (define (guix-publish host)
>>                          file "/" (symbol->string algo) "/"
>>                          (bytevector->nix-base32-string hash))))
>>  
>> -     (list (guix-publish "ci.guix.gnu.org")
>> +     (list (guix-publish
>> +            ;; bordeaux.guix.gnu.org uses the nar-herder rather than guix
>> +            ;; publish, but it supports the same style of requests
>> +            "bordeaux.guix.gnu.org")
>> +           (guix-publish "ci.guix.gnu.org")
>
> LGTM, thanks!

Awesome, I've gone ahead and pushed this as
7d0ebe040d80adcf143656e754a82b569243568c.

Thanks,

Chris
Simon Tournier Feb. 16, 2023, 10:13 a.m. UTC | #3
Hi,

I am late to the party. :-)

On Sat, 11 Feb 2023 at 21:04, Christopher Baines <mail@cbaines.net> wrote:

>>> -     (list (guix-publish "ci.guix.gnu.org")
>>> +     (list (guix-publish
>>> +            ;; bordeaux.guix.gnu.org uses the nar-herder rather than guix
>>> +            ;; publish, but it supports the same style of requests
>>> +            "bordeaux.guix.gnu.org")
>>> +           (guix-publish "ci.guix.gnu.org")

The attempts are done in the order of the list, right?  First, it tries
bordeaux.guix.gnu.org, then ci.guix.gnu.org, then tarballs.nixos.org.

Somehow it does not really matter, just to be sure the pressure is not
too much for the resources behind Bordeaux. :-)

Cheers,
simon
diff mbox series

Patch

diff --git a/guix/download.scm b/guix/download.scm
index fff54d7a17..561a893eee 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -387,7 +387,11 @@  (define (guix-publish host)
                         file "/" (symbol->string algo) "/"
                         (bytevector->nix-base32-string hash))))
 
-     (list (guix-publish "ci.guix.gnu.org")
+     (list (guix-publish
+            ;; bordeaux.guix.gnu.org uses the nar-herder rather than guix
+            ;; publish, but it supports the same style of requests
+            "bordeaux.guix.gnu.org")
+           (guix-publish "ci.guix.gnu.org")
            (lambda (file algo hash)
              ;; 'tarballs.nixos.org' supports several algorithms.
              (string-append "https://tarballs.nixos.org/"