guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

January (2023) update on bordeaux.guix.gnu.org


From: Christopher Baines
Subject: January (2023) update on bordeaux.guix.gnu.org
Date: Tue, 17 Jan 2023 10:00:13 +0000
User-agent: mu4e 1.8.11; emacs 28.2

Hey!

The last update was sent out in September [1], so 4 and a bit months
ago.

1: https://lists.gnu.org/archive/html/guix-devel/2022-09/msg00038.html


## Numbers

bordeaux.guix.gnu.org currently provides ~2 million nars, which take up
~8.3TiB to store.

Substitute availability is still reasonable I think. Additionally,
there's some substitutes for i586-gnu (the Hurd) now.


## Non master branch substitutes

One gradual change that's been happening over the last few months is
that there's more builds/substitutes on bordeaux.guix.gnu.org for non
master branch things (so for patches and branches like staging).


## Mirrors

No progress has happened in terms of mirrors.

There's still the US mirror I host [2] plus bishan effectively acts as a
mirror [3].

2: https://bordeaux-us-east-mirror.cbaines.net/
3: https://bishan.guix.gnu.org/

I think there's still the opportunity to sort out the DNS and
certificates so that bordeaux.guix.gnu.org refers to multiple servers,
increasing reliability and hopefully performance as well.


## Serving fixed output files by hash

This has progressed recently as Guile Fibers now supports streaming
responses without storing the whole response in memory [4].

4: https://github.com/wingo/fibers/pull/63

I've enabled this in the bayfront NGinx config, so you can now make
requests like [5]

5: 
https://bordeaux.guix.gnu.org/file/texlive-20210325-texmf.tar.xz/sha256/070gczcm1h9rx29w2f02xd3nhd84c4k28nfmm8qgp69yq8vd84pz

This seems to work for me on a fast connection, but the requests drops
part way through on a slower connection. I'm not quite sure why yet but
it's probably some NGinx configuration issue. You can also try making
these requests directly against bishan.


## Next steps

There's still a whole lot to improve on in multiple areas.

While bordeaux.guix.gnu.org is now a default substitute server, and
there's been a release since this change was made, the substitute
servers list is ordered, so the obvious question is what needs to change
so that bordeaux.guix.gnu.org is the substitute server that users should
try first? In my mind, the main blocking issue is the current lack of
zstd substitutes, but that's something that's being addressed now.

There's also the content addressed mirror issue (discussed above as
serving fixed output files by hash). I think a little more testing is
required, but then it should be possible to add bordeaux.guix.gnu.org to
the list of content addressed mirrors.

In terms of resource requirements, especially now that builds for
patches and non-master branches are happening, there's a use for more
build hardware. The more pressing issue though is storage
space. Currently the two machines responsible for storing all the nars
(bishan and hatysa) each have around 10TiB of storage for this purpose,
which will probably be all used up by July this year. It should be
possible to extend the storage in hatysa, but bishan will probably need
replacing.

There's also improvements to and around the build coordinator,
particularly in the area of observability (seeing what builds are
happening and queued).

If you're interested in working on any of this, do let me know as while
I don't have time to work on much of it myself, I should be able to make
time to help others.

Let me know if you have any comments or questions!

Thanks,

Chris

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]