From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Retaining substitutes Date: Fri, 06 Apr 2018 09:57:00 +0200 Message-ID: <87d0zc4vjn.fsf_-_@gnu.org> References: <20180405052439.GA30291@thebird.nl> <87efjuj6f2.fsf@elephly.net> <87efjtzqo4.fsf@gnu.org> <20180405145929.GA345@thebird.nl> <87vad5y8v7.fsf@gnu.org> <20180405164158.GA965@thebird.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f4MF8-0005xb-H9 for guix-devel@gnu.org; Fri, 06 Apr 2018 03:57:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f4MF5-00006c-EI for guix-devel@gnu.org; Fri, 06 Apr 2018 03:57:06 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:37952) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f4MF5-00006G-7Z for guix-devel@gnu.org; Fri, 06 Apr 2018 03:57:03 -0400 In-Reply-To: <20180405164158.GA965@thebird.nl> (Pjotr Prins's message of "Thu, 5 Apr 2018 18:41:58 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Pjotr Prins Cc: guix-devel@gnu.org Hello, Pjotr Prins skribis: > On Thu, Apr 05, 2018 at 05:24:12PM +0200, Ludovic Court=C3=A8s wrote: >> Pjotr Prins skribis: >>=20 >> > I am *not* suggesting we stop testing and stop writing tests. They are >> > extremely important for integration (thought we could do with a lot >> > less and more focussed integration tests - ref Hickey). What I am >> > writing is that we don't have to rerun tests for everyone *once* they >> > succeed *somewhere*. If you have a successful reproducible build and >> > tests on a platform there is really no point in rerunning tests >> > everywhere for the exact same setup. It is a nice property of our FP >> > approach. Proof that it is not necessary is the fact that we >> > distribute substitute binaries without running tests there. What I am >> > proposing in essence is 'substitute tests'.=20 >>=20 >> Understood. >>=20 >> > If tests are so important to rerun: tell me why we are not running >> > tests when substituting binaries? >>=20 >> Because you have a substitute if and only those tests already passed >> somewhere. This is exactly the property we=E2=80=99re interested in, ri= ght? > > Yup. Problem is substitutes go away. We don't retain them and I often > encounter that use case. I agree this is a problem. We=E2=80=99ve tweaked =E2=80=98guix publish=E2= =80=99, our nginx configs, etc. over time to mitigate this, but I suppose we could still do better. When that happens, could you try to gather data about the missing substitutes? Like what packages are missing (where in the stack), and also how old is the Guix commit you=E2=80=99re using. More generally, I think there are connections with telemetry as we discussed it recently: we should be able to monitor our build farms to see concretely how much we=E2=80=99re retaining in high-level terms. FWIW, today, on mirror.hydra.gnu.org, the nginx cache for nars contains 94G (for 3 architectures). On berlin.guixsd.org, /var/cache/guix/publish takes 118G (3 architectures as well), and there=E2=80=99s room left. > Providing test-substitutes is much lighter and can be retained > forever. I understand. Now, I agree with Ricardo that this would target the specific use case where you=E2=80=99re building from source (explicitly disabling substitutes), yet you=E2=80=99d like to avoid running tests. We could adresss this using specific mechanisms (although like I said, I really don=E2=80=99t see what it would look like.) However, I believe optimizing substitute delivery in general would benefit everyone and would also address the running-tests-takes-too-much-time issue. Can we focus on measuring the performance of substitute delivery and thinking about ways to improve it? Thanks for your feedback, Ludo=E2=80=99.