Avoid invalidating all RelationSyncCache entries on publication rename.
authorAmit Kapila <akapila@postgresql.org>
Thu, 13 Mar 2025 03:33:45 +0000 (09:03 +0530)
committerAmit Kapila <akapila@postgresql.org>
Thu, 13 Mar 2025 03:46:33 +0000 (09:16 +0530)
commit3abe9dc18892b9f69bb48a2eb21fbe5cf348a489
tree94c13f6e439179127d0b8bd9d03d080726bedda1
parent75da2bece670059f3c1a3628dfbc3d24cc9638b8
Avoid invalidating all RelationSyncCache entries on publication rename.

On Publication rename, we need to only invalidate the RelationSyncCache
entries corresponding to relations that are part of the publication being
renamed.

As part of this patch, we introduce a new invalidation message to
invalidate the cache maintained by the logical decoding output plugin. We
can't use existing relcache invalidation for this purpose, as that would
unnecessarily cause relcache invalidations in other backends.

This will improve performance by building fewer relation cache entries
during logical replication.

Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Author: Shlok Kyal <shlok.kyal.oss@gmail.com>
Reviewed-by: Hou Zhijie <houzj.fnst@fujitsu.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Discussion: https://postgr.es/m/OSCPR01MB14966C09AA201EFFA706576A7F5C92@OSCPR01MB14966.jpnprd01.prod.outlook.com
src/backend/access/rmgrdesc/standbydesc.c
src/backend/commands/alter.c
src/backend/commands/publicationcmds.c
src/backend/replication/pgoutput/pgoutput.c
src/backend/utils/cache/inval.c
src/include/commands/publicationcmds.h
src/include/pg_config_manual.h
src/include/storage/sinval.h
src/include/utils/inval.h
src/test/subscription/t/007_ddl.pl