Skip to content

Commit 710796f

Browse files
committed
Avoid unnecessary shared invalidations in ROLLBACK PREPARED
The performance gain is minimal, but this makes the logic more consistent with AtEOXact_Inval(). No other invalidation is needed in this case as PREPARE takes already care of sending any local ones. Author: Liu Huailing Reviewed-by: Tom Lane, Michael Paquier Discussion: https://postgr.es/m/OSZPR01MB6215AA84D71EF2B3D354CF86BE139@OSZPR01MB6215.jpnprd01.prod.outlook.com
1 parent c3928b4 commit 710796f

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/backend/access/transam/twophase.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,13 +1520,17 @@ FinishPreparedTransaction(const char *gid, bool isCommit)
15201520
* Handle cache invalidation messages.
15211521
*
15221522
* Relcache init file invalidation requires processing both before and
1523-
* after we send the SI messages. See AtEOXact_Inval()
1523+
* after we send the SI messages, only when committing. See
1524+
* AtEOXact_Inval().
15241525
*/
1525-
if (hdr->initfileinval)
1526-
RelationCacheInitFilePreInvalidate();
1527-
SendSharedInvalidMessages(invalmsgs, hdr->ninvalmsgs);
1528-
if (hdr->initfileinval)
1529-
RelationCacheInitFilePostInvalidate();
1526+
if (isCommit)
1527+
{
1528+
if (hdr->initfileinval)
1529+
RelationCacheInitFilePreInvalidate();
1530+
SendSharedInvalidMessages(invalmsgs, hdr->ninvalmsgs);
1531+
if (hdr->initfileinval)
1532+
RelationCacheInitFilePostInvalidate();
1533+
}
15301534

15311535
/*
15321536
* Acquire the two-phase lock. We want to work on the two-phase callbacks

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy