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 1urFgl-0034Vy-9O for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Aug 2025 12:55:44 +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 1urFgk-00FB2A-J8 for pgsql-hackers@arkaria.postgresql.org; Wed, 27 Aug 2025 12:55:43 +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 1urFgk-00FB20-57 for pgsql-hackers@lists.postgresql.org; Wed, 27 Aug 2025 12:55:42 +0000 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1urFgh-0021CB-1y for pgsql-hackers@lists.postgresql.org; Wed, 27 Aug 2025 12:55:41 +0000 Received: by mail-qt1-x833.google.com with SMTP id d75a77b69052e-4b134a5b217so70791431cf.1 for ; Wed, 27 Aug 2025 05:55:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756299339; x=1756904139; darn=lists.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=Pf/BEaL5hzIbyhiG0TDRRp7G1YglwgTd8RLjKoLWs0w=; b=UerQjhGed8ES8lWxgfgfl3ZiwKokRtQr82RUxeIyxAJqEYWCAYpqiNX3Q++S59TtP6 FUHoeUTvUhVJzTHDRw8NDLFbKvFKUPf0oFh9ffvWN331kUGNYJ2xW9FDAtVQWidsgF/U RKDAWFpRo/wHlM4EoHJhaN4W/eE2i+IAHsyjXDU3nrci0PZi9zF0us2cnmDmY6/4Ittm IWn++onbVFRwuvo0QUnhJVBTeCwejg64V48MewuPgp3E3MMFfLLvCc6HJdddgwVpN5ni ZU/sdWfCulOJEqxbuUcQvYvZe0MuFDs6InrCOupk1iGbmRf+0WSSp9rSd53lkafJ1lq/ iF2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756299339; x=1756904139; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Pf/BEaL5hzIbyhiG0TDRRp7G1YglwgTd8RLjKoLWs0w=; b=Cz1Iq5jY5pYwFQtDcPPadW7tQhGz2FbLx00NA6+n0CBwqnjXzL3mMZYvgHPYo/RH4m t0RHztBSUYAYgcTx0Wf8pOUFBaOxBQ6VZIE2pzj9IZTM3dSLuov/kqjInUmltAsj2xg4 nHkowJJSlM2W2n7RObUoi1n2nUOgyThSCJo2D6beNnRyknt6MEF/cu5pX68avgIgx1Ll aLS1fj87sXPq7iyWH5xqsZH08ER9ZWnD4ug5OMVeTZFmNYXnM7sAQ/Hbjun7YCkxwc8E JM4VBkp1kWO4WNE+M+VF68H2smDw4m2Ju7McA5Uf+1mxrzOmugIXT/YjZli+R0lJc24g 7WLw== X-Forwarded-Encrypted: i=1; AJvYcCVMW6JUMxXYbLFPplcpHFoHpQ1pG5Ssp03PBvQzk1kfD9M6f5HT9y+ktpa9w3C81C53eLohNpFD95Knp/hR@lists.postgresql.org X-Gm-Message-State: AOJu0YwX/svRNGcA/SdYlKRA1y7Xt4v14A5wgwd1KSw1vG8aQJlIJzu7 M1afhsartsPy62+vbFSpbupZYC7p5TzU8ikRkLveISBRxx/UL45Vj0xUffEEhqlCe7zZok7xkxu 3mRA79EhgozIsYSHRGhf5zHnXVLOq5+E= X-Gm-Gg: ASbGncvQybhhbxpBZz136UE4jPgL6HNfKJByNLnrzPKJBENQbHvpoC+juZuO9pqIC20 RkzmZaj7oqKXshNycDRQ+q0ZWdm3bSWnww4nR4Fchj5vFg6FRAsa6oY82qodkEObDHh3zgiyb24 wtHwpjgzGY5ddDMYg9ojbOkcRdWOMRNUpHOK2rw4rrl3yCvlE2xRUYQ8cpTcuqWUyTLpr9bh4oM imYqZdrDWr+cffuG9KgA2tjcOdGei5ppS96auU= X-Google-Smtp-Source: AGHT+IE2f8zYKpau1LAHTkjTkifELw4YzO16bixVF8aB6KAD/WvfXfUN1dIRPqdpx/sa0ltfMkbOMijGJf2pCB71gjM= X-Received: by 2002:ac8:5f4f:0:b0:4af:1c00:8996 with SMTP id d75a77b69052e-4b2aaa03c5dmr196644191cf.6.1756299338982; Wed, 27 Aug 2025 05:55:38 -0700 (PDT) MIME-Version: 1.0 References: <87DD95AA-274F-4F4F-BAD9-7738E5B1F905@yandex-team.ru> In-Reply-To: From: Kirill Reshke Date: Wed, 27 Aug 2025 17:55:27 +0500 X-Gm-Features: Ac12FXy-kFWuuTSB4erShMhVoRGmsv5WitzdkWhoziR7i6hH8YUFavjzLnZmjMs Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Melanie Plageman Cc: Andrey Borodin , PostgreSQL Hackers , Andres Freund , Robert Haas Content-Type: multipart/mixed; boundary="000000000000387956063d584e37" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000387956063d584e37 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 2 Aug 2025 at 02:36, Melanie Plageman w= rote: > > On Thu, Jul 31, 2025 at 6:58=E2=80=AFPM Melanie Plageman > wrote: > > > > The patch "Set-pd_prune_xid-on-insert.txt" can be applied as the last > > patch in the set. It sets pd_prune_xid on insert (so pages filled by > > COPY or insert can also be set all-visible in the VM before they are > > vacuumed). I gave it a .txt extension because it currently fails > > 035_standby_logical_decoding due to a recovery conflict. I need to > > investigate more to see if this is a bug in my patch set or elsewhere > > in Postgres. > > I figured out that if we set the VM on-access, we need to enable > hot_standby_feedback in more places in 035_standby_logical_decoding.pl > to avoid recovery conflicts. I've done that in the attached updated > version 6. There are a few other issues in > 035_standby_logical_decoding.pl that I reported here [1]. With these > changes, setting pd_prune_xid on insert passes tests. Whether or not > we want to do it (and what the heuristic should be for deciding when > to do it) is another question. > > - Melanie > > [1] https://www.postgresql.org/message-id/flat/CAAKRu_YO2mEm%3DZWZKPjTMU%= 3DgW5Y83_KMi_1cr51JwavH0ctd7w%40mail.gmail.com v6-0015: I chose to verify whether this single modification would be beneficial on the HEAD. Benchmark I did: ``` \timing CREATE TABLE zz(i int); alter table zz set (autovacuum_enabled =3D false); TRUNCATE zz; copy zz from program 'yes 2 | head -n 180000000'; copy zz from program 'yes 2 | head -n 180000000'; delete from zz where (REPLACE(REPLACE(ctid::text, '(', '{'), ')', '}')::int[])[2] =3D 7 ; VACUUM FREEZE zz; ``` And I checked perf top footprint for last statement (vacuum). My detailed results are attached. It is a HEAD vs HEAD+v6-0015 benchmark. TLDR: function inlining is indeed beneficial, TransactionIdPrecedes function disappears from perf top footprint, though query runtime is not changed much. So, while not resulting in query speedup, this can save CPU. Maybe we can derive an artificial benchmark, which will show query speed up, but for now I dont have one. --=20 Best regards, Kirill Reshke --000000000000387956063d584e37 Content-Type: text/plain; charset="US-ASCII"; name="attach.txt" Content-Disposition: attachment; filename="attach.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_metz43sv0 d2l0aG91dDoKCk92ZXJoZWFkICBTaGFyZWQgT2IgIFN5bWJvbAogICA3LjEzJSAgcG9zdGdyZXMg ICBbLl0gaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUKICAgNi40NiUgIHBvc3RncmVzICAgWy5d IGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwKICAgNS43OCUgIFtrZXJuZWxd ICAgW2tdIF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZQogICA0LjUxJSAgcG9zdGdyZXMgICBb Ll0gaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZQogICA0LjM4JSAgcG9zdGdyZXMgICBbLl0gSGVh cFR1cGxlU2F0aXNmaWVzVmFjdXVtSG9yaXpvbgogICA0LjA0JSAgcG9zdGdyZXMgICBbLl0gaGVh cF9wYWdlX2lzX2FsbF92aXNpYmxlCiAgIDMuNzklICBwb3N0Z3JlcyAgIFsuXSBoYXNoX3NlYXJj aF93aXRoX2hhc2hfdmFsdWUKICAgMy41OCUgIFtrZXJuZWxdICAgW2tdIGNvcHlfcGFnZV9mcm9t X2l0ZXJfYXRvbWljCiAgIDMuNTElICBba2VybmVsXSAgIFtrXSBtYXJrX2J1ZmZlcl9kaXJ0eQog ICAzLjI4JSAgcG9zdGdyZXMgICBbLl0gcGdfY2hlY2tzdW1fcGFnZQogICAyLjA4JSAgcG9zdGdy ZXMgICBbLl0gcGdfY29tcF9jcmMzMmNfYXZ4NTEyCiAgIDEuOTYlICBwb3N0Z3JlcyAgIFsuXSBo ZWFwX3ByZV9mcmVlemVfY2hlY2tzCiAgIDEuOTAlICBwb3N0Z3JlcyAgIFsuXSBjb21wYWN0aWZ5 X3R1cGxlcwogICAxLjg3JSAgcG9zdGdyZXMgICBbLl0gUGFnZVJlcGFpckZyYWdtZW50YXRpb24K ICAgMS44MiUgIHBvc3RncmVzICAgWy5dIFBhZ2VTZXRDaGVja3N1bUNvcHkKICAgMS43NSUgIGxp YmMuc28uNiAgWy5dIF9fbWVtbW92ZV9ldmV4X3VuYWxpZ25lZF9lcm1zCiAgIDEuNzIlICBwb3N0 Z3JlcyAgIFsuXSBoZWFwX2xvZ19mcmVlemVfY21wCiAgIDEuNzIlICBwb3N0Z3JlcyAgIFsuXSBs b2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplCiAgIDEuNDMlICBwb3N0Z3JlcyAgIFsuXSBMV0xvY2tS ZWxlYXNlSW50ZXJuYWwKICAgMS4zNiUgIHBvc3RncmVzICAgWy5dIGhlYXBfZnJlZXplX3ByZXBh cmVkX3R1cGxlcwogICAxLjMwJSAgcG9zdGdyZXMgICBbLl0gQWR2YW5jZVhMSW5zZXJ0QnVmZmVy CiAgIDEuMzAlICBwb3N0Z3JlcyAgIFsuXSBUcmFuc2FjdGlvbklkUHJlY2VkZXMKICAgMC45NiUg IHBvc3RncmVzICAgWy5dIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bQogICAwLjkxJSAgW2tlcm5l bF0gICBba10gZmlsZW1hcF9nZXRfZW50cnkKICAgMC44NyUgIFtrZXJuZWxdICAgW2tdIGV4dDRf ZGFfd3JpdGVfZW5kCiAgIDAuODQlICBwb3N0Z3JlcyAgIFsuXSBHZXRQcml2YXRlUmVmQ291bnRF bnRyeQogICAwLjgzJSAgW2tlcm5lbF0gICBba10gZmF1bHRfaW5fcmVhZGFibGUKICAgMC44MSUg IHBvc3RncmVzICAgWy5dIGhlYXBfdHVwbGVfbmVlZHNfZXZlbnR1YWxfZnJlZXplCiAgIDAuODAl ICBwb3N0Z3JlcyAgIFsuXSBUcmFuc2FjdGlvbklkRGlkQ29tbWl0CiAgIDAuNzElICBba2VybmVs XSAgIFtrXSBfX2Jsb2NrX2NvbW1pdF93cml0ZQogICAwLjY5JSAgcG9zdGdyZXMgICBbLl0gTFdM b2NrQXR0ZW1wdExvY2sKICAgMC42NCUgIHBvc3RncmVzICAgWy5dIFRyYW5zYWN0aW9uTG9nRmV0 Y2gKICAgMC42MiUgIHBvc3RncmVzICAgWy5dIGhlYXBfcGFnZV9wcnVuZV9leGVjdXRlCiAgIDAu NjIlICBba2VybmVsXSAgIFtrXSByZWZpbGxfc3RvY2sKICAgMC41NyUgIHBvc3RncmVzICAgWy5d IExvY2tCdWZIZHIKICAgMC41MyUgIFtrZXJuZWxdICAgW2tdIGxydXZlY19zdGF0X21vZF9mb2xp bwogICAwLjUyJSAgW2tlcm5lbF0gICBba10gcmVmaWxsX29ial9zdG9jawogICAwLjUxJSAgcG9z dGdyZXMgICBbLl0gVHJhbnNhY3Rpb25JZEZvbGxvd3MKCgoKcmVzaGtlPSMgXHRpbWluZwpUaW1p bmcgaXMgb24uCnJlc2hrZT0jIGNvcHkgenogZnJvbSBwcm9ncmFtICd5ZXMgMiB8IGhlYWQgLW4g MTgwMDAwMDAwJzsKQ09QWSAxODAwMDAwMDAKVGltZTogNTg3OTUuODMyIG1zICgwMDo1OC43OTYp CnJlc2hrZT0jIGNvcHkgenogZnJvbSBwcm9ncmFtICd5ZXMgMiB8IGhlYWQgLW4gMTgwMDAwMDAw JzsKCmRlbGV0ZSBmcm9tIHp6IHdoZXJlIChSRVBMQUNFKFJFUExBQ0UoY3RpZDo6dGV4dCwgJygn LCAneycpLCAnKScsICd9Jyk6OmludFtdKVsyXSA9IDcgOwoKVkFDVVVNIEZSRUVaRSB6ejsKQ09Q WSAxODAwMDAwMDAKVGltZTogNjIyOTcuMzU3IG1zICgwMTowMi4yOTcpCkRFTEVURSAxNTkyOTIx ClRpbWU6IDM3MzQ5NS4xNTggbXMgKDA2OjEzLjQ5NSkKVkFDVVVNClRpbWU6IDE5OTE1MC41NTQg bXMgKDAzOjE5LjE1MSkKCgoKd2l0aDoKCjcuMDclICBwb3N0Z3JlcyAgIFsuXSBoZWFwX3BydW5l X3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsCiAgIDYuNjclICBwb3N0Z3JlcyAgIFsuXSBoZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZQogICA1Ljg3JSAgW2tlcm5lbF0gICBba10gX3Jhd19zcGlu X3VubG9ja19pcnFyZXN0b3JlCiAgIDQuNDglICBwb3N0Z3JlcyAgIFsuXSBIZWFwVHVwbGVTYXRp c2ZpZXNWYWN1dW1Ib3Jpem9uCiAgIDQuMDUlICBwb3N0Z3JlcyAgIFsuXSBoZWFwX3ByZXBhcmVf ZnJlZXplX3R1cGxlCiAgIDQuMDAlICBba2VybmVsXSAgIFtrXSBtYXJrX2J1ZmZlcl9kaXJ0eQog ICAzLjkyJSAgW2tlcm5lbF0gICBba10gY29weV9wYWdlX2Zyb21faXRlcl9hdG9taWMKICAgMy41 OSUgIHBvc3RncmVzICAgWy5dIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZQogICAzLjU4JSAgcG9z dGdyZXMgICBbLl0gcGdfY2hlY2tzdW1fcGFnZQogICAzLjQyJSAgcG9zdGdyZXMgICBbLl0gaGFz aF9zZWFyY2hfd2l0aF9oYXNoX3ZhbHVlCiAgIDIuMjYlICBwb3N0Z3JlcyAgIFsuXSBwZ19jb21w X2NyYzMyY19hdng1MTIKICAgMi4xMiUgIHBvc3RncmVzICAgWy5dIFBhZ2VSZXBhaXJGcmFnbWVu dGF0aW9uCiAgIDIuMDclICBwb3N0Z3JlcyAgIFsuXSBQYWdlU2V0Q2hlY2tzdW1Db3B5CiAgIDEu ODklICBwb3N0Z3JlcyAgIFsuXSBoZWFwX3ByZV9mcmVlemVfY2hlY2tzCiAgIDEuODMlICBwb3N0 Z3JlcyAgIFsuXSBoZWFwX2xvZ19mcmVlemVfY21wCiAgIDEuNjUlICBba2VybmVsXSAgIFtrXSBm aWxlbWFwX2dldF9lbnRyeQogICAxLjY0JSAgcG9zdGdyZXMgICBbLl0gY29tcGFjdGlmeV90dXBs ZXMKICAgMS41MyUgIHBvc3RncmVzICAgWy5dIExXTG9ja1JlbGVhc2VJbnRlcm5hbAogICAxLjUw JSAgcG9zdGdyZXMgICBbLl0gbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZQogICAxLjQ5JSAgcG9z dGdyZXMgICBbLl0gaGVhcF9mcmVlemVfcHJlcGFyZWRfdHVwbGVzCiAgIDEuNDAlICBsaWJjLnNv LjYgIFsuXSBfX21lbW1vdmVfZXZleF91bmFsaWduZWRfZXJtcwogICAxLjM4JSAgcG9zdGdyZXMg ICBbLl0gQWR2YW5jZVhMSW5zZXJ0QnVmZmVyCiAgIDEuMDQlICBwb3N0Z3JlcyAgIFsuXSBIZWFw VHVwbGVTYXRpc2ZpZXNWYWN1dW0KICAgMS4wMyUgIFtrZXJuZWxdICAgW2tdIF9fYmxvY2tfY29t bWl0X3dyaXRlCiAgIDAuOTYlICBwb3N0Z3JlcyAgIFsuXSBMV0xvY2tBdHRlbXB0TG9jawogICAw LjkyJSAgW2tlcm5lbF0gICBba10gZXh0NF9kYV93cml0ZV9lbmQKICAgMC45MCUgIHBvc3RncmVz ICAgWy5dIGhlYXBfdHVwbGVfbmVlZHNfZXZlbnR1YWxfZnJlZXplCiAgIDAuODAlICBwb3N0Z3Jl cyAgIFsuXSBHZXRQcml2YXRlUmVmQ291bnRFbnRyeQogICAwLjc4JSAgW2tlcm5lbF0gICBba10g ZmF1bHRfaW5fcmVhZGFibGUKICAgMC43NSUgIHBvc3RncmVzICAgWy5dIFRyYW5zYWN0aW9uSWRE aWRDb21taXQKICAgMC43MiUgIFtrZXJuZWxdICAgW2tdIGxydXZlY19zdGF0X21vZF9mb2xpbwog ICAwLjY5JSAgW2tlcm5lbF0gICBba10gcmVmaWxsX3N0b2NrCiAgIDAuNjklICBwb3N0Z3JlcyAg IFsuXSBUcmFuc2FjdGlvbkxvZ0ZldGNoCiAgIDAuNjQlICBba2VybmVsXSAgIFtrXSByZWZpbGxf b2JqX3N0b2NrCiAgIDAuNjElICBwb3N0Z3JlcyAgIFsuXSBYTG9nSW5zZXJ0CiAgIDAuNTYlICBw b3N0Z3JlcyAgIFsuXSBoZWFwX3BhZ2VfcHJ1bmVfZXhlY3V0ZQogICAwLjU2JSAgW2tlcm5lbF0g ICBba10gX3Jhd19zcGluX2xvY2sKICAgMC41MCUgIHBvc3RncmVzICAgWy5dIHVpbnQzMl9oYXNo CgoKcmVzaGtlPSMgY29weSB6eiBmcm9tIHByb2dyYW0gJ3llcyAyIHwgaGVhZCAtbiAxODAwMDAw MDAnOwpjb3B5IHp6IGZyb20gcHJvZ3JhbSAneWVzIDIgfCBoZWFkIC1uIDE4MDAwMDAwMCc7Cgpk ZWxldGUgZnJvbSB6eiB3aGVyZSAoUkVQTEFDRShSRVBMQUNFKGN0aWQ6OnRleHQsICcoJywgJ3sn KSwgJyknLCAnfScpOjppbnRbXSlbMl0gPSA3IDsKQ09QWSAxODAwMDAwMDAKVGltZTogNTc0ODku NjY1IG1zICgwMDo1Ny40OTApCkNPUFkgMTgwMDAwMDAwClRpbWU6IDYwNzExLjAyNCBtcyAoMDE6 MDAuNzExKQpERUxFVEUgMTU5MjkyMQpUaW1lOiAzNzU0ODEuODU4IG1zICgwNjoxNS40ODIpCnJl c2hrZT0jClZBQ1VVTSBGUkVFWkUgeno7ClZBQ1VVTQpUaW1lOiAxOTY0NDIuMzQwIG1zICgwMzox Ni40NDIpCg== --000000000000387956063d584e37--