From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id oG1CI0iFuGBGVAAAgWs5BA (envelope-from ) for ; Thu, 03 Jun 2021 09:31:20 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id uNKNHkiFuGAFLgAAbx9fmQ (envelope-from ) for ; Thu, 03 Jun 2021 07:31:20 +0000 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 290391D3BA for ; Thu, 3 Jun 2021 09:31:20 +0200 (CEST) Received: from localhost ([::1]:41046 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lohp0-0000wz-WF for larch@yhetil.org; Thu, 03 Jun 2021 03:31:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57478) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lohok-0000vp-DP for guix-patches@gnu.org; Thu, 03 Jun 2021 03:31:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:58679) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lohok-0007gF-5e for guix-patches@gnu.org; Thu, 03 Jun 2021 03:31:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lohok-00009P-2p for guix-patches@gnu.org; Thu, 03 Jun 2021 03:31:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48806] [PATCH 0/7] Generalized cache support and improved graft caching Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 03 Jun 2021 07:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 48806 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 48806@debbugs.gnu.org Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.162270542130498 (code B ref -1); Thu, 03 Jun 2021 07:31:01 +0000 Received: (at submit) by debbugs.gnu.org; 3 Jun 2021 07:30:21 +0000 Received: from localhost ([127.0.0.1]:41986 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1loho5-0007vT-C3 for submit@debbugs.gnu.org; Thu, 03 Jun 2021 03:30:21 -0400 Received: from lists.gnu.org ([209.51.188.17]:55660) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1loho3-0007ts-V6 for submit@debbugs.gnu.org; Thu, 03 Jun 2021 03:30:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57246) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1loho3-00008c-ML for guix-patches@gnu.org; Thu, 03 Jun 2021 03:30:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60122) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1loho2-0007Av-OG; Thu, 03 Jun 2021 03:30:18 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=57414 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lohns-0006Wt-C1; Thu, 03 Jun 2021 03:30:16 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Thu, 3 Jun 2021 09:29:58 +0200 Message-Id: <20210603072958.13424-1-ludo@gnu.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1622705480; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=F68pA8ketkTAUj2wF/zLTdIwm+Sr36J4v0jm+A1k9fs=; b=KRlNwDrcs6dZ4AwF0uUSTSL3hBlTmiv6mkvS5TeTwljduBnf7Mnz+Uib73liryI1ulhpKV Z39cPURjgcMnEmLqt0awLsU1Kt/zPrr5AEyUlM4C5aHjKMBRh9t63WpTTulq39ObiC6TRZ 08X3sV/vGh1Sua9MTdiVCtnxNHcpDtdveYy7kYGB30xS2QAvoMTV/iwNQqZNBGEzSnsfR6 gHIDqNSLUeAhWwewfPFaIXzOGM+gnlaHupQLIBAuPXzEaZcWTAJx2RSEhNr84RBbZ9+XAN hQkgObKSu2t54vrIUTwof9wKolyEkhjUuv0MIUZLxUfi9rTekQLE8D77jSgo3Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1622705480; a=rsa-sha256; cv=none; b=hJ7LpqJpnObGEynE7k9Hf3MjVysdyMwQPxG3dC/EExDsTXZjONGeCzvqM3rcNdL7JFPeU1 sbZ8lM1dD8PdrMFLQtyMhKnBBeyHMnxNAAm6X2L5jkQgHhK4cDWw1o4x9kMu3loK/LmkIc ZOiVFGVM1z0wyYX262B+Vn28agNZQ1nonW+RafTe0fI8M7U2CSyCALnSs6iJMUY4t0mbt5 f2T2LJ2bKZsz4c1so3jsa6CXpV8DZIAoWz1pzUzMUWB1BaU4zh3e2Jh0HaYuJym5OCAA6N pn485eOMB3W6zKoRw8GIwgQqKXV6YFGFvCo8bJ3WOArv6J1W+i2D6btj5KT5yg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -1.93 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 290391D3BA X-Spam-Score: -1.93 X-Migadu-Scanner: scn0.migadu.com X-TUID: IiOdGAONLi8r Hi! This patch series allows us to dynamically allocate per-store-connection caches, such that subsequently created records can have the newly allocated caches. So far there were a couple of per-connection caches; for anything else, we’d resort to global hash tables. That’s not great because those caches are usually valid only for one connection to a store, and only for the duration of that session. This new feature addresses that. The last patch uses it to have session-wide caches mapping derivations to applicable grafts, which partly addresses the performance problems described in . Feedback welcome, including performance reports! Thanks, Ludo’. Ludovic Courtès (7): store: Support dynamic allocation of per-connection caches. store: Generalize cache lookup recording. grafts: Record cache lookups for profiling. grafts: Use SRFI-71 instead of SRFI-11. store: Remove 'references/substitutes'. store: 'references/cached' now uses a per-session cache. grafts: Cache the derivation/graft mapping for the whole session. guix/grafts.scm | 56 ++++++++----- guix/store.scm | 205 ++++++++++++++++++++++++++---------------------- tests/store.scm | 36 --------- 3 files changed, 150 insertions(+), 147 deletions(-) -- 2.31.1