public inbox for [email protected]  
help / color / mirror / Atom feed
From: =?ISO-8859-1?B?Y2NhNTUwNw==?= <[email protected]>
To: =?ISO-8859-1?B?QmVydHJhbmQgRHJvdXZvdA==?= <[email protected]>
Cc: =?ISO-8859-1?B?TWljaGFlbCBQYXF1aWVy?= <[email protected]>
Cc: =?ISO-8859-1?B?cGdzcWwtaGFja2Vycw==?= <[email protected]>
Subject: Re: Historic snapshot doesn't track txns committed in BUILDING_SNAPSHOT state
Date: Mon, 12 Aug 2024 16:34:25 +0800
Message-ID: <[email protected]> (raw)

Hi,


4, 5 ===


&gt; if (SnapBuildCurrentState(builder) < SNAPBUILD_BUILDING_SNAPSHOT ||
&gt;&nbsp; &nbsp; &nbsp;(SnapBuildCurrentState(builder) == SNAPBUILD_BUILDING_SNAPSHOT &amp;&amp; info != XLOG_HEAP_INPLACE) ||
&gt;&nbsp; &nbsp; &nbsp;ctx-&gt;fast_forward)
&gt;&nbsp; &nbsp; &nbsp;return;



I think during fast forward, we also need handle the xlog that marks a transaction
as&nbsp;catalog modifying, or the snapshot might lose some transactions?


&gt; That way we'd still rely on what's being done in the XLOG_HEAP_INPLACE case


+		if (SnapBuildCurrentState(builder) &gt;= SNAPBUILD_BUILDING_SNAPSHOT)
+		{
+			/* Currently only XLOG_HEAP_INPLACE means a catalog modifying */
+			if (info == XLOG_HEAP_INPLACE &amp;&amp; TransactionIdIsValid(xid))
+				ReorderBufferXidSetCatalogChanges(ctx-&gt;reorder, xid, buf-&gt;origptr);
+		}



We only call&nbsp;ReorderBufferXidSetCatalogChanges() for the xlog that marks a transaction as&nbsp;catalog
modifying, and we don't care about the other steps being done in the xlog, so I think the current
approach is ok.


--
Regards,
ChangAo Chen

view thread (10+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Historic snapshot doesn't track txns committed in BUILDING_SNAPSHOT state
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox