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 1wBQU7-00133J-1o for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Apr 2026 05:02:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wBQU4-00FezO-1W for pgsql-hackers@arkaria.postgresql.org; Sat, 11 Apr 2026 05:02:17 +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 1wBQU3-00FezG-2o for pgsql-hackers@lists.postgresql.org; Sat, 11 Apr 2026 05:02:16 +0000 Received: from mail-yx1-xb12e.google.com ([2607:f8b0:4864:20::b12e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wBQU2-00000000RYS-1mWY for pgsql-hackers@lists.postgresql.org; Sat, 11 Apr 2026 05:02:15 +0000 Received: by mail-yx1-xb12e.google.com with SMTP id 956f58d0204a3-65006c99d38so3080517d50.3 for ; Fri, 10 Apr 2026 22:02:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775883734; cv=none; d=google.com; s=arc-20240605; b=g1rP1jPKJKckTG5ypYLZiBG/MWidNDs7O9u740nrv9xYC6ryEV0xoGnVuX3zSJzuZ6 /PKbS1fYTQzWfCj0Fib9pOX64p9Ph1BE+n4jH6RxQupq9S35zt/Vkuf51SdiTIgC/SuZ EDDspla6fq+6LTqy42yJlLV0i47w2RDbdk8nS5jr+ecT0QxkTOntJv1rXB2bYtFiHs1r 8gK4y2StDxi8v9DqaCM7wuEyj3GzOrYNvQ2E7uSCvmNamd9MBd2q5xr+4snxe6zmhg20 feRyFvc7Vl9uqdBE2ldwiQdQvttzVjMJTfmIpikW0Ha1UhVgsznav3tkEoBOr3KPRODh x/eQ== 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=wBFfs8goodUS8BKVA5vB0QUhZguIUYSghmP80POGVqI=; fh=EWXJQAmHMAfnb7qKDI0z+W+UKC27Chf5jd/XoHf5dFY=; b=F9RjLowhzRr8EAtWe8zXKGCnLVEDx5JX73V/Ngk7vHC781Io/pGQo/cO9N/K4uKejt VAcFF3v0nA9rYWAxHzr8neCYLvRTGD4AyAZ5mdY/gkmG3WWK19kxyf3KjBpCKErs+YvG hwRqdDpjxTomV1oNaGKBxUJarbfB81jeDEjASa8nenMbh1JDlzO5SjWssGUvYhgwoPXd jzePh3fIH1cAdBM63icQDlOnMnkC7fOvd5pK3QapRWa+kwr9gvl0p/XBuv+iC3+UR6QS J8iAzIB/vsRq82Uw4Lw97HHkNzWnN1s5WgZ1HU6zfzDHwNLo0N0HOh9Fai/sSqq6uCWb 5Xbw==; darn=lists.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=1775883734; x=1776488534; 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=wBFfs8goodUS8BKVA5vB0QUhZguIUYSghmP80POGVqI=; b=JoxAmvYvijpvsaSfMS1a4CA/QA/QTEC/fOQhvoTEJd8FVLAHcY6BQptTl5yVInxmpo VU/vIf5pdfSb8d1ALuIaSyl06wmgRCdPY9KPiWM8q+krq5gDmbRqisb8qKBjC6biCW9F 69tA2qfpIkmyPiHq5lJSLxEbX7k4Z6z+c6gTQkbAGPH5K/v+g57N2SL2cxyOpgLRLXSU T+v+u4EJs3zQWZzQLcowJepF5ACNQFUp2b676Dy/foj9o+7vnhNQOgW82w+kto/cp0Yf tT+YFRXAce34yqBt2ewwjwoDT0S6yWJqbQjryFyGGmZ4X9zAe6jFYcDxf9rV4akqUxij xajQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775883734; x=1776488534; 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=wBFfs8goodUS8BKVA5vB0QUhZguIUYSghmP80POGVqI=; b=MdYmhH25oNZHOq8b9IeRk/uU6PPSMnhZ13IUYxY7AiJ8TEtKN73rTZBz0ubvC1s9e+ U4laEqSkmcM4q+EfXYi4d3qoYGzrgmbYKqLJBR+wYh5Pj0XwWN8KXr58rinYF66Isa4n wyiPbWyeC2nTEsvFgzl2U76yz7uV0oSPgP4ANXSMhxYl6a5vv4eTnEvxbL7iXHIWd7KZ 8mbFjUMq3sXWHgNs3YZXLpG9Jxu7JKRf0BDp0ya0HvhtuAIdkbYFRd9D09aW80PTpvHO ACIiwm2knVvjaRA+EZ6TYAIwSKlXW8V9v1e215f7FI+dpmpQ5QGYxw1ruGNxUcDyH/6e n9zA== X-Gm-Message-State: AOJu0Yy5yb/onwOKntwTGOwNQ04RF7asBGu/Mj3JMzY8bDErHHd2H9dH Z6IT9TklHJ6F36MGLbkXmv9HGoFJYjTi7mioKAVCaIbiu+c0MHoGoAWpLDikhIDumSs4SoDNWG/ jNHvDL1GzjCyCkUF3w3KWsMJ2rKLa9iA= X-Gm-Gg: AeBDiesEXznkfgfGUCYtIBttNC/PKT41WgAne+G3CFSYdQ6vLuB9HxhJ/v1T/2s74gn jbzDo8xEFZw2UjchcVt+xGLeQK1ROr8tqfunCiyNC81e3de/mKiukFXM1Gm2qjxv5J8ayzhbbb7 DAbaNBwLQU103xRobc3I9X+Z8g+i+W1RGBEo135IsK8zKeM4B70sJK+GwCsrfxzvWcgVdAlzs7m OEQ1Wv85fTXcHqfc/yFfP/RynR7HXc4upYusQKONBMWyeSEjaiSlW4afgwfQopsnOHgtj+rjQQc eoPQXvE= X-Received: by 2002:a05:690e:d47:b0:650:3bbc:5375 with SMTP id 956f58d0204a3-65198a6a25fmr5304161d50.17.1775883733870; Fri, 10 Apr 2026 22:02:13 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lakshmi N Date: Fri, 10 Apr 2026 22:02:02 -0700 X-Gm-Features: AQROBzA24BF-nEVVeOaRDRBxqVeS6CGaRnGsIRD649id1Ul4EZXZMp3Tm91CPG4 Message-ID: Subject: Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops To: Dapeng Wang Cc: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000001f1bb1064f2827be" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001f1bb1064f2827be Content-Type: multipart/alternative; boundary="0000000000001f1bb0064f2827bc" --0000000000001f1bb0064f2827bc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Fri, Apr 10, 2026 at 4:57=E2=80=AFAM Dapeng Wang wrote: > Lakshmi N =E4=BA=8E2026=E5=B9=B44=E6=9C=8810=E6= =97=A5=E5=91=A8=E4=BA=94 16:39=E5=86=99=E9=81=93=EF=BC=9A > >> Hi hackers, >> >> I noticed CFI is missing while scanning pg_class for RELKIND_RELATION an= d >> RELKIND_TOASTVALUE. On a database with several thousands of tables, thes= e >> scans can take a noticeable amount of time. Attached a patch to address >> this. >> >> Regards, >> Lakshmi >> > Hi Lakshmi, > > The patch applies cleanly to HEAD and compiles without warnings. > make check passes (one unrelated ICU collation diff). > > The two CHECK_FOR_INTERRUPTS() additions in do_autovacuum() look > correct and are well-placed at the top of each loop iteration, > before any resources are acquired. > > I noticed there are other similar catalog scan loops in > autovacuum.c that also lack CHECK_FOR_INTERRUPTS(): > > - The pg_database scan loop around line 1854 > - The pg_class scan loop around line 3664 > > Should those be covered as well? > Updated the patch covering those two as well. Regards, Lakshmi > --0000000000001f1bb0064f2827bc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Fri, Apr 10, = 2026 at 4:57=E2=80=AFAM Dapeng Wang <wangdp20191008@gmail.com> wrote:
Lakshmi = N <lakshmin.= jhs@gmail.com> =E4=BA=8E2026=E5=B9=B44=E6=9C=8810=E6=97=A5=E5=91=A8= =E4=BA=94 16:39=E5=86=99=E9=81=93=EF=BC=9A
=
Hi hacke= rs,

I noticed CFI is missing=C2=A0while scanning pg_clas= s for RELKIND_RELATION and RELKIND_TOASTVALUE. On a database with several t= housands of tables, these scans can take a noticeable amount of time. Attac= hed a patch to address this.

Regards,
La= kshmi
Hi Lakshmi,

The patch applies cleanly = to HEAD and compiles without warnings.
make check passes (one unrelated = ICU collation diff).

The two CHECK_FOR_INTERRUPTS() additions in do_= autovacuum() look
correct and are well-placed at the top of each loop it= eration,
before any resources are acquired.

I noticed there are o= ther similar catalog scan loops in
autovacuum.c that also lack CHECK_FOR= _INTERRUPTS():

- The pg_database scan loop around line 1854
- The= pg_class scan loop around line 3664

Should those be covered as well= ?

Updated the patch coverin= g those two as well.


Regards,
=
Lakshmi
--0000000000001f1bb0064f2827bc-- --0000000000001f1bb1064f2827be Content-Type: application/octet-stream; name="v2-0001-Add-CHECK_FOR_INTERRUPTS-in-autovacuum-table-scannin.patch" Content-Disposition: attachment; filename="v2-0001-Add-CHECK_FOR_INTERRUPTS-in-autovacuum-table-scannin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mntvb6pz0 RnJvbSBkMmQzMTk4N2QyZTQ3OWE4ZDkyNDk0NjQ0YzE4M2M4YmQyZjc0OWIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYWtzaG1pIE4gPGxha3NobWluLmpoc0BnbWFpbC5jb20+CkRh dGU6IEZyaSwgMTAgQXByIDIwMjYgMDE6Mzk6MDQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQg Q0hFQ0tfRk9SX0lOVEVSUlVQVFMgaW4gYXV0b3ZhY3V1bSB0YWJsZS1zY2FubmluZyBsb29wcwoK LS0tCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyB8IDggKysrKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jCmluZGV4IDgyMDYxMjQ3OTg4Li41ZTM2MTM3OTI1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9h dXRvdmFjdXVtLmMKQEAgLTE4NTksNiArMTg1OSw4IEBAIGdldF9kYXRhYmFzZV9saXN0KHZvaWQp CiAJCWF2d19kYmFzZSAgKmF2ZGI7CiAJCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCisJCUNIRUNL X0ZPUl9JTlRFUlJVUFRTKCk7CisKIAkJLyoKIAkJICogSWYgZGF0YWJhc2UgaGFzIHBhcnRpYWxs eSBiZWVuIGRyb3BwZWQsIHdlIGNhbid0LCBub3IgbmVlZCB0bywKIAkJICogdmFjdXVtIGl0LgpA QCAtMjA0Miw2ICsyMDQ0LDggQEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQlib29sCQl3cmFwYXJv dW5kOwogCQlBdXRvVmFjdXVtU2NvcmVzIHNjb3JlczsKIAorCQlDSEVDS19GT1JfSU5URVJSVVBU UygpOworCiAJCWlmIChjbGFzc0Zvcm0tPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgog CQkJY2xhc3NGb3JtLT5yZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVykKIAkJCWNvbnRpbnVlOwpA QCAtMjE0Niw2ICsyMTUwLDggQEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQlib29sCQl3cmFwYXJv dW5kOwogCQlBdXRvVmFjdXVtU2NvcmVzIHNjb3JlczsKIAorCQlDSEVDS19GT1JfSU5URVJSVVBU UygpOworCiAJCS8qCiAJCSAqIFdlIGNhbm5vdCBzYWZlbHkgcHJvY2VzcyBvdGhlciBiYWNrZW5k cycgdGVtcCB0YWJsZXMsIHNvIHNraXAgJ2VtLgogCQkgKi8KQEAgLTM2NjksNiArMzY3NSw4IEBA IHBnX3N0YXRfZ2V0X2F1dG92YWN1dW1fc2NvcmVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCURhdHVt CQl2YWxzWzEwXTsKIAkJYm9vbAkJbnVsbHNbMTBdID0ge2ZhbHNlfTsKIAorCQlDSEVDS19GT1Jf SU5URVJSVVBUUygpOworCiAJCS8qIHNraXAgaW5lbGlnaWJsZSBlbnRyaWVzICovCiAJCWlmIChm b3JtLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKIAkJCWZvcm0tPnJlbGtpbmQgIT0g UkVMS0lORF9NQVRWSUVXICYmCi0tIAoyLjQzLjAKCg== --0000000000001f1bb1064f2827be--