Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rP6sB-009MSJ-Ai for pgsql-hackers@arkaria.postgresql.org; Sun, 14 Jan 2024 20:14:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rP6s9-00CWzd-Jl for pgsql-hackers@arkaria.postgresql.org; Sun, 14 Jan 2024 20:14:21 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rP6s9-00CWzV-AE for pgsql-hackers@lists.postgresql.org; Sun, 14 Jan 2024 20:14:21 +0000 Received: from mail-yb1-xb2d.google.com ([2607:f8b0:4864:20::b2d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rP6s3-001XV4-PP for pgsql-hackers@lists.postgresql.org; Sun, 14 Jan 2024 20:14:19 +0000 Received: by mail-yb1-xb2d.google.com with SMTP id 3f1490d57ef6-dbed7c0744cso6186566276.2 for ; Sun, 14 Jan 2024 12:14:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; t=1705263254; x=1705868054; darn=lists.postgresql.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=ZScG7Gd73koIffo0kjlSdUGdK0SDGTCbqIx1Pm3i78c=; b=OSw9AYvLaaIRRwCfL1jfASXJKu32Cs6UyMD/mHpx08dsA+j7b7CDJZNVxnjPUgWYyJ MWfr7MrakagoSD7lRQMw1AJ+Bmht0woVUjpTXWD3iX2w4G6e9sE0hOAiZhlzsvXHJqFo QIiRy4LbxhRRCt9lqjF5ZiAE9djI/F/h7qco8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705263254; x=1705868054; h=user-agent:in-reply-to:content-disposition:mime-version:references :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZScG7Gd73koIffo0kjlSdUGdK0SDGTCbqIx1Pm3i78c=; b=iOC8dUweX+ariGkDy20bbJTvCwFPG1i6cwVYwLVcRCBywsFvyNRwowuzbNdREqw+D/ Q6bg7Hu887rs9daE2KhL/txllBUcFc5Q8MMv8DWwNpgLDNJgZXNKa+XpTUhVkJPbQAaQ JBe7eFtlvXM8tIdla3487VZt4povG+2Ek5U8hGy3lafLaPwbJlkOrOI/4b1hQjbn8sQK KVyW7yIqEhXPWMDuChk/CGfjSEsiEIT4Y/lbqCfSKcicDKz39ekxTkRVV/MwHkPUHuWZ ZpPoTAywZ1nHdTWZ/9iMK+Ry54daPn5Jo4bR+mbc/M6ghzYDmZrWFZtbdQdizwwOD4IQ PwHw== X-Gm-Message-State: AOJu0YwCW6WkbHUjiD0eOvy/gU8nzDVpZy+hgI7l+Z+jUePvAHYLdYzc Oo4nKUCC2D+FlVR6jyOW9vRsCHKA+Dcy X-Google-Smtp-Source: AGHT+IEXBqpfq2ksdHzD3wjLFE5hwX/ZzKuW5KpzsmKquahAsVfyB7Fn4SN5R8UrGOAQLcTxY0BIiA== X-Received: by 2002:a81:ec08:0:b0:5ee:66b0:5960 with SMTP id j8-20020a81ec08000000b005ee66b05960mr2883107ywm.10.1705263254573; Sun, 14 Jan 2024 12:14:14 -0800 (PST) Received: from rfd.leadboat.com ([2600:1702:a20:5750::48]) by smtp.gmail.com with ESMTPSA id u3-20020a814703000000b005e7d8d6e446sm3382926ywa.93.2024.01.14.12.14.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Jan 2024 12:14:14 -0800 (PST) Date: Sun, 14 Jan 2024 12:14:11 -0800 From: Noah Misch To: Tom Lane Cc: Xiaoran Wang , pgsql-hackers@lists.postgresql.org, Andres Freund Subject: Re: Recovering from detoast-related catcache invalidations Message-ID: <20240114201411.d0@rfd.leadboat.com> References: <329632.1705011663@sss.pgh.pa.us> <754826.1705090452@sss.pgh.pa.us> <793469.1705092433@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <793469.1705092433@sss.pgh.pa.us> User-Agent: Mutt/2.2.12 (2023-09-09) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Fri, Jan 12, 2024 at 03:47:13PM -0500, Tom Lane wrote: > I wrote: > > This is uncomfortably much in bed with the tuple table slot code, > > perhaps, but I don't see a way to do it more cleanly unless we want > > to add some new provisions to that API. Andres, do you have any > > thoughts about that? > > Oh! After nosing around a bit more I remembered systable_recheck_tuple, > which is meant for exactly this purpose. So v4 attached. systable_recheck_tuple() is blind to heap_inplace_update(), so it's not a general proxy for invalidation messages. The commit for $SUBJECT (ad98fb1) doesn't create any new malfunctions, but I expect the systable_recheck_tuple() part will change again before the heap_inplace_update() story is over (https://postgr.es/m/flat/CAMp+ueZQz3yDk7qg42hk6-9gxniYbp-=bG2mgqecErqR5gGGOA@mail.gmail.com).