From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id IHFnG+7oFGRonwAASxT56A (envelope-from ) for ; Fri, 17 Mar 2023 23:25:50 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id UIdiG+7oFGTkKwAA9RJhRA (envelope-from ) for ; Fri, 17 Mar 2023 23:25:50 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3AF747DF1 for ; Fri, 17 Mar 2023 23:25:50 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1679091950; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=XwPKvY85j9qpWp0Ok5u7gHzRjtHElM0+malb+cyjrQM=; b=O53mC356xumi2uKqtBOg1mtTJlf9q7f+91geyWfR42Jpc2ovz3Wnc33d87ST3Baj8MNMgm 42pbZAIMsphhOSpCIoA1U4Y8nJxJIMQBujGp4Tn3rO2IfeZmzGMvgosEQujhH63gu1Lqep WqfVWfO7fMJe2c0802Q1y+EfG/FK+ZGRwrRc7D94BbKN+4AV3/cEmbIeuIWin/M0wh6SzB Qrs5cHiVo+/ZLfTGLov/LzvgIgt/j3BZyJrTAaqSxgz3f5PDiYUIK+QEEaN36cTZZ2e3rR cHXkAik3p2/5zqPVmPJH5aQMMDlApgN1ADofrsm9t6/ZkLeBwGHDSGWH2g3XnA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1679091950; a=rsa-sha256; cv=none; b=K4rb3oaprCfbjFPUW0Nt9HQV5HakyQSjMJEw3yiS3oxnWqBO/MnCmzf2q3aQjU/p39WKdI CL1jI6KF3WbianGMeklZ38Ifo0c0TWDkJodp1S7FYt64uIsZXyLUgoWUby5VVYvP/N0J5I 5Y1BdlJjcAYhEkFyOAuKM6EnSBZNKJzrQwOwj/IULGUCzG+VUor4/+ktEDveAPOUwVA3Yg SsjF8TN+FgxzY2dIeikUIMzDztt7GyuHgII6CaNvdyyl81kNj8eNxBlwk6zIeAMlxAgpz/ UFRzSayJn2bbx6FsHdhWuzwrfbU/vmRuUsLjJwd2E4zpW7nDxrD4U9dmFKAbuQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pdIVs-0006VU-B8; Fri, 17 Mar 2023 18:25:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pdIVj-0006UQ-BP for guix-devel@gnu.org; Fri, 17 Mar 2023 18:25:20 -0400 Received: from mira.cbaines.net ([2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pdIVg-0005Zg-T0 for guix-devel@gnu.org; Fri, 17 Mar 2023 18:25:19 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:3a91:a0a4:ecee:f157]) by mira.cbaines.net (Postfix) with ESMTPSA id 34E6716EA6 for ; Fri, 17 Mar 2023 22:25:14 +0000 (GMT) Received: from felis (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 41d79aa9 for ; Fri, 17 Mar 2023 22:25:13 +0000 (UTC) User-agent: mu4e 1.8.13; emacs 28.2 From: Christopher Baines To: guix-devel@gnu.org Subject: March update on bordeaux.guix.gnu.org Date: Thu, 16 Mar 2023 19:29:30 +0000 Message-ID: <874jqjvwvt.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27; envelope-from=mail@cbaines.net; helo=mira.cbaines.net X-Spam_score_int: -5 X-Spam_score: -0.6 X-Spam_bar: / X-Spam_report: (-0.6 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_24_48=1.34, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: X-Migadu-Queue-Id: 3AF747DF1 X-Spam-Score: -3.45 X-Migadu-Spam-Score: -3.45 X-Migadu-Scanner: scn0.migadu.com List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-TUID: mpJX2SGXb0+d --=-=-= Content-Type: text/plain Hey! The last update was sent out back in January [1], while things are stable there has been some activity in the last couple of months. 1: https://lists.gnu.org/archive/html/guix-devel/2023-01/msg00199.html ## Numbers bordeaux.guix.gnu.org currently provides ~2.2 million nars, which take up ~9.2TiB to store. Substitute availability is still reasonable, although recent availability for i686-linux has been lower than it has been previously. ## Mirrors Still no progress has happened in terms of mirrors. This would still be nice to get setup, but it's probably not the priority in terms of administration and infrastructure. ## Serving fixed output files by hash bordeaux.guix.gnu.org is now in the list of content addressed mirrors [2]. 2: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7d0ebe040d80adcf143656e754a82b569243568c In addition to the above change, some fixed output derivations use download-nar rather than content addressed mirrors, so I've now updated that to also fetch from bordeaux.guix.gnu.org [3]. 3: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=b59f89cf18fbad9ee95521c4cadc6642c580feb8 ## Referential integrity This is usually something I think about in the context of databases, but nars/narinfos have references, and I've been working to ensure that for any nar provided by bordeaux.guix.gnu.org, you're also able to fetch any nar it references. I noticed something was lacking here a while ago when I went to substitute an output for guix pull, but guix wasn't able to since some referenced outputs weren't available. These missing outputs turned out to be files that guix inserts in to the store to use as sources in the derivations computed by guix pull. The build coordinator now knows about this and will publish these as nars by default [4]. This was never an issue when actually using guix pull, since it would compute the derivations and create the missing outputs locally, so they aren't usually substituted. To backfill the missing items, I wrote a script to fetch the nars from data.guix.gnu.org, since it has them as part of providing substitutes for the derivations. 4: https://git.savannah.gnu.org/cgit/guix/build-coordinator.git/commit/?id=751910162c54d0bf85fa5a21c25ad229cb12828d There's still a bit more work to do in terms of ensuring outputs aren't missing when nars are inserted and removed, but this is nearly there. ## Offering zstd compressed nars bordeaux.guix.gnu.org uses lzip to compress the nars, which is good choice in terms of minimising the storage requirements and size of downloads. It's been known for a while though that this might not suit all users, as those with fast network connections may benefit from nars that can be decompressed much quicker even if there's more bytes to download. 5: https://guix.gnu.org/en/blog/2021/getting-bytes-to-disk-more-quickly/ To enable providing zstd compressed nars, without having to store every nar as an lzip compressed file and zstd compressed file, the nar-herder now supports generating cached nars with different compressions. The nar-herder running on bayfront (which serves bordeaux.guix.gnu.org) is now configured to generate and cache zstd nars [6]. Currently there are ~25,000 cached nars taking up about 86GiB of space. 6: https://git.savannah.gnu.org/cgit/guix/maintenance.git/commit/?id=c4778aa2689e0e73e77cadb71a04dc2dfee4ea27 ## Next steps Last time I said that I thought the main blocking issue in making bordeaux.guix.gnu.org the default substitute server to try first was the lack of zstd nars. Some nars are now available with zstd compression, so there's progress been made on this at least. I think a good argument can be made for trying bordeaux.guix.gnu.org being better for users than trying ci.guix.gnu.org first, but it's not clear cut. On the issue of expanding the storage for nars, I've submitted the request to purchase an additional hard drive for hatysa to expand the storage there. There is still a need to come up with a plan to replace bishan when it runs out of space (ideally before!). Now that bordeaux.guix.gnu.org is building things for the master branch, plus qa.guix.gnu.org is submitting lots of builds for patches and branches, there's more going on at varying priorities. This is really good, but there's a greater need now to expose what's being built and what the backlog looks like. 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 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmQU6MdfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XdbfhAAqwZVr9mc7rfcZYdmF2HL2AIx6eEaMyfs Hib0CqI5qMgmfTr75x/NIl6SAMr46F7bZOjSuVbeNXwDXl/R68tQILYzCZJrD5mT iwGR5iexaoSjN2FjzGKkvjeTS4O2GKHN985gAtkQpS01/KWpYpDrO+7kepvmgDAx 7nLaBd+B6FtaxgdOxs8fflk2rs5E1gwEXwp51EQxPsIo8FTtRzhSLbtnIR/Rj3gb PXQn3B5jtPPs85+6OA2x+iNV9SSy2E2DwCrvo/wVljSn2wc64QgsrxKnm+V2N+gY q/nqQSiu0N3Mjeb7wGAhmAVf0n+cODTOhLWC3vxWYr0s7Wlrm0XUr51LB2X7io+m mvfBEQT724Jfs5g81ELMPKCbARuiuKbluKuwYjbjzjjz78+K1HN+AaourmbF3GRE KxhCbgOSxOQi7pL4PxeHSTBv9eBRrHWaXoOD9+r1IIlWv4l2D+WKl1dXGE68XyhT i0Q/aVYJfiM5mEOEOdqccMjEd94LuMRMz3xOpLRdugsF5+dq1ogwAVnkLwgoNZMj 5eyir9v7v/s4F7BF0JvZsAkMMCI47deDQVMbCguG7YMp3J1uefhs0mfZooDzag8u seHjL+/qZ79iqx7ACLPr397KS61ZBomdOtS3nRg3W1ZP528NNW2z9UmAGHgEowxl b33ux7fC7WQ= =GaGW -----END PGP SIGNATURE----- --=-=-=--