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.96) (envelope-from ) id 1w9O9N-001Ob9-11 for pgsql-hackers@arkaria.postgresql.org; Sun, 05 Apr 2026 14:08:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w9O9K-0034PY-2I for pgsql-hackers@arkaria.postgresql.org; Sun, 05 Apr 2026 14:08:27 +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.96) (envelope-from ) id 1w9O9K-0034PO-0n for pgsql-hackers@lists.postgresql.org; Sun, 05 Apr 2026 14:08:26 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w9O9I-00000000gkm-25rL for pgsql-hackers@postgresql.org; Sun, 05 Apr 2026 14:08:25 +0000 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-488aa77a06eso9138235e9.0 for ; Sun, 05 Apr 2026 07:08:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775398103; cv=none; d=google.com; s=arc-20240605; b=Zkw4vC2R485/41AE7OUZb2RqL4Fd5lJWo/M6BttM5xyihyWcIZGun7hJGilx2IAdBj cuaq5XhQQ1PL4U9apbaFAZr44FJwEUovGVtllTCEyBn+qceV2yPAvSMzp7LYkpr+cZET skVyAy249BKZ3YAaCm8JMrxImgzpwjdnU2xw9INGwfqCy20LmGgcEfdTtGGLwWveaJwh Yx+29XuTd4P6t8tFzUlzOCAQat+eGqN+WbY8ZyilX5nH75wECpMuc3H2og4JyJeZcJ3i wtCc8LuVe8CwHUXm0qMI+YTGCV9Dd8CTaBs3FwsLsGtH4/5l9jeiUydlr7y83EX6NSwz v2gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=PA43TJx9uMqkBsZuM7XaDaQGb0dGmYpjqaLIC73W4n0=; fh=UoabMEb4y/PpbAVKg6gFUF3KDHPUQRKlyaOl7dnu3Ys=; b=Xc3Rqoj6OTvo9Q9VDpPRqVwZKM/lWTU1/ynuuF2uP5RRd7KRN2kz52ZnpCBMB9n4u5 0N0hkVb47BZ6wIK+6WBsoFy65o5yow9KPUSSBg/dTetuBUAvRlmuig4im9RqevkZp9Tm k5/NrTER17CRvwFAukT0MgD9JNAVlRlZFHFCKY0S6V+rFsTVBM6S+F0EgZLlKGbhWDQI pvVNNIDo8isTCmYTPL1yet4m3I/4rE9eJ66tjgv9czhvOQTYq/NGazOmDVJOPMJmPNVC AOGbkba8m6fqDMI2qFZ6BTRDCFzq2TbMs+cSyhgz3839fjnJ9SQugNMSJxiuNRU4lENG 1Z/Q==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775398103; x=1776002903; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=PA43TJx9uMqkBsZuM7XaDaQGb0dGmYpjqaLIC73W4n0=; b=OS+KlAsUQkw2R6JzBD/e+nf2yf/jQEaMkgjlv59k2WUxmOJC2yjacJiSPD8gR7gaSx DY7WOp1ENnBb5Dmn8nVC1Nz4copi5FMmEuC2IOM7wrW6lhg61oBhbyJx+I6v3xat2Mly OkGUDyi+975SU3Zbd9HFy1SFAY+bt+DR+R0bpi4zH68IT3BPF/qbSYsdWKDFko29Clib Q7fic0+09Rl8mCzmTIN/fawA87Oh3659O4m4/D2sup+0ARzOpGP6s+uep3QuqblJ2ACO mVrwjsSY9HcecOmKDIfBgMNxeeOmFCOgFbp+q1ZnoU94fWupddifuHe2o+wxERIqg60b IccA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775398103; x=1776002903; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PA43TJx9uMqkBsZuM7XaDaQGb0dGmYpjqaLIC73W4n0=; b=XNb9YU7gi/py+sRNoav62c1MRCuUG904SOUkBlIs8+eHPqiZ8oB/3JAI5lwz3H6QKI zBWHgeoLlI8/fLgq2y+NfW+IFEkDDP2SrOHhs/f+msUUURVVgrL5atKWqrX+OgXBj/Nq 7igahhk75XJww1hkIz37lsI5LMZRPXGhlQAgfmNdm9jKUGPraaeEdFLEUbwFXQv0qQwR xgxMwSRFAo+diU0Vy+cwfqKYla9K9J2LNk2C+oCA9E9TzHtZH0cHj7XVSkaHP/Lj+Q2I /pbzoKQq5nZca18UfyR2ieYKHYNhKryqp866mEaBzRO8lYHwcChZ9OL/LduBmuk+D42p QFXg== X-Forwarded-Encrypted: i=1; AJvYcCXmUGAKtiW50rQSX8MEcWsvEtOzEuSUp0Z2cw73z212nV6CDRvtSC3Qa7nRo37A27Vp+jNpa+yVuf9WsNKr@postgresql.org X-Gm-Message-State: AOJu0Yx1Oy7WPmVFKvVSuk8BNJDAPneaeIax5CYmPyBAUI7vROMBUo1I mG3lmxDrq2zFy11UAsdtiHX4VetB/cSdfW0B0XrKPuEw/lHtvqHIYwrWfOm6aA4MtGJolmL6eEd UzCZ8CG0QgFDzgicFMhuf01M9iMGupvA= X-Gm-Gg: AeBDieul99GylF2TmPaGTmzsk7G321TK6U0ADZMrvS6gmyCFfKe3d5W0id2YVQplBE7 fQeDLf8WUmke3iSiMf+gGb15K6rRU42nPF4Zr8JFX7XVs2y4oJ7FeWNSRWqo97AOPVKRJpTsmCm nBpwuNo/CoASMmiMJUoLe6o024yiNu6Usy/QJ9QFhuH0BiIchW7TCXdn7QG6OhrAMVS63LYg2k4 U0L+/4ADLT9jZGnDW/felOXCGxAfJzHtkYUISuRRlC/oiORWlDVhtw//RRfiauChk19TzQZIsZS h8K0LbnBTcdrfmuB6LKC0CQqjDHN8sLR5Dvf7fa6/RdCuTq/DbkI X-Received: by 2002:a05:600c:1c10:b0:488:ae6c:42c6 with SMTP id 5b1f17b1804b1-488ae6c4476mr25667645e9.14.1775398102838; Sun, 05 Apr 2026 07:08:22 -0700 (PDT) MIME-Version: 1.0 References: <113724ab-0028-493f-9605-6e8570f0939f@iki.fi> <791c3f18-f4de-4d84-ac6b-c7ccc074dd38@iki.fi> <9d919bd9-94dd-4bda-8ccf-ebced4178c53@iki.fi> <7d3ba240-9350-4dfc-bbe1-be6584aee236@iki.fi> <1c3a07a7-158d-4800-927c-2641c73277d8@iki.fi> In-Reply-To: From: Ashutosh Bapat Date: Sun, 5 Apr 2026 19:38:09 +0530 X-Gm-Features: AQROBzCGzUjqq6ATxBkEYFmApoLyzsN4H_A8dI9c3P9I-kF0gAsBXk1U1HyOQLE Message-ID: Subject: Re: Better shared data structure management and resizable shared data structures To: Heikki Linnakangas Cc: Matthias van de Meent , Robert Haas , Andres Freund , pgsql-hackers , chaturvedipalak1911@gmail.com Content-Type: multipart/mixed; boundary="0000000000004158a0064eb715b5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004158a0064eb715b5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Apr 5, 2026 at 11:18=E2=80=AFAM Ashutosh Bapat wrote: > > > I will post my resizable shmem structures patch in a separate email in > this thread but continue to review your patches. I reviewed the SLRU patch. This is the first time I am looking at SLRU code, so my review may not be sufficient. As far as I understand, the patch faithfully copies the functionality from the old system to the new system. I didn't find any issues there. I think calls to SimpleLruRequest() reads much better than SimpleLruInit(). Both MultiXactShmemInit and MultiXactShmemAttach set OldestMemberMXactId, OldestVisibleMXactId. In future if we add another global variable to point to the shared memory, somebody needs to remember to initialize it in both these functions. Maybe deduplicate it with something like attached? Similarly for PredicateLock related changes. shmem_slru_init and shmem_slru_attach() also have the following duplicate lines, which can be deduplicated in a similar fashion. desc->shared =3D shared; desc->nbanks =3D nbanks; memcpy(&desc->options, options, sizeof(SlruOpts)); Including "access/slru.h" in shmem.h is circular inclusion. I am wondering whether we need to create shmem_slru.h like shmem_hash.h to handle shared memory APIs related to SLRU. Given that SLRU also has a disk component, the bifurcation may not be straightforward. I haven't looked into this aspect in detail. -- Best Wishes, Ashutosh Bapat --0000000000004158a0064eb715b5 Content-Type: application/octet-stream; name="0014_edits.diff.nocibot" Content-Disposition: attachment; filename="0014_edits.diff.nocibot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnlu0ksk0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvb3JpZ2luLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5jCmluZGV4IGRhYTk4NDMzMGYx Li5iZDBiN2MzNGNkMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9vcmlnaW4uYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5j CkBAIC01NzMsNyArNTczLDEwIEBAIHN0YXRpYyB2b2lkCiBSZXBsaWNhdGlvbk9yaWdpblNobWVt SW5pdCh2b2lkICphcmcpCiB7CiAJaWYgKG1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lucyA9 PSAwKQorCXsKKwkJQXNzZXJ0KCFyZXBsaWNhdGlvbl9zdGF0ZXNfY3RsKTsKIAkJcmV0dXJuOwor CX0KIAogCXJlcGxpY2F0aW9uX3N0YXRlcyA9IHJlcGxpY2F0aW9uX3N0YXRlc19jdGwtPnN0YXRl czsKIApAQCAtNTkxLDcgKzU5NCwxMCBAQCBzdGF0aWMgdm9pZAogUmVwbGljYXRpb25PcmlnaW5T aG1lbUF0dGFjaCh2b2lkICphcmcpCiB7CiAJaWYgKG1heF9hY3RpdmVfcmVwbGljYXRpb25fb3Jp Z2lucyA9PSAwKQorCXsKKwkJQXNzZXJ0KCFyZXBsaWNhdGlvbl9zdGF0ZXNfY3RsKTsKIAkJcmV0 dXJuOworCX0KIAogCXJlcGxpY2F0aW9uX3N0YXRlcyA9IHJlcGxpY2F0aW9uX3N0YXRlc19jdGwt PnN0YXRlczsKIH0K --0000000000004158a0064eb715b5--