On Thu, Aug 8, 2024 at 2:37 PM Hayato Kuroda (Fujitsu)
<kuroda.hay...@fujitsu.com> wrote:
>
> Thanks for discussing!
>
> I reported the issue because 1) I feared the risk of data loss and 2) simply
> because the coding looked incorrect. However, per discussion, I understood 
> that
> it wouldn't lead to loss, and adding a global variable was unacceptable in 
> this
> case. I modified the patch completely.
>
> The attached patch avoids using the LastCommitLSN as the local_lsn while 
> applying
> PREPARE. get_flush_position() was not changed. Also, it contains changes that
> have not been discussed yet:
>
> - Set last_commit_end to InvaldXLogPtr in the PREPARE case.
>   This causes the same result as when the stream option is not "parallel."
> - XactLastCommitEnd was replaced even ROLLBACK PREPARED case.
>   Since the COMMIT PREPARED record is flushed in 
> RecordTransactionAbortPrepared(),
>   there is no need to ensure the WAL must be sent.
>

The code changes look mostly good to me. I have changed/added a few
comments in the attached modified version.

-- 
With Regards,
Amit Kapila.

Attachment: v3-0001-Change-the-misleading-local-end_lsn-for-prepared-.patch
Description: Binary data

Reply via email to