On Wed, Apr 6, 2022 at 1:59 AM Amit Kapila <amit.kapil...@gmail.com> wrote: On Wed, Apr 6, 2022 at 4:32 AM Amit Kapila <amit.kapil...@gmail.com> wrote: > Thanks for your comments.
> typedef void (*LogicalOutputPluginWriterUpdateProgress) (struct > LogicalDecodingContext *lr, > XLogRecPtr Ptr, > TransactionId xid, > - bool skipped_xact > + bool skipped_xact, > + bool last_write > > In this approach, I don't think we need an additional parameter last_write. > Let's > do the work related to keepalive without a parameter, do you see any problem > with that? I agree with you. Modify this point. > I think this patch doesn't take into account that we call > OutputPluginUpdateProgress() from APIs like pgoutput_commit_txn(). I > think we should always call the new function update_progress from > those existing call sites and arrange the function such that when > called from xact end APIs like pgoutput_commit_txn(), it always call > OutputPluginUpdateProgress and make changes_count as 0. Improve it. Add two new input to function update_progress.(skipped_xact and end_xact). Modify the function invoke from OutputPluginUpdateProgress to update_progress. > Also, let's try to evaluate how it impacts lag functionality for large > transactions? I think this patch will not affect lag functionality. It will updates the lag field of view pg_stat_replication more frequently. IIUC, when invoking function WalSndUpdateProgress, it will store the lsn of change and invoking time in lag_tracker. Then when invoking function ProcessStandbyReplyMessage, it will calculate the lag field according to the message from subscriber and the information in lag_tracker. This patch does not modify this logic, but only increases the frequency of invoking. Please let me know if I understand wrong. Attach the new patch. 1. Remove the new function input parameters in this patch(parameter last_write of WalSndUpdateProgress). [suggestion by Amit-San] 2. Also invoke function update_progress in other xact end APIs like pgoutput_commit_txn. [suggestion by Amit-San] Regards, Wang wei
v12-0001-Fix-the-logical-replication-timeout-during-large.patch
Description: v12-0001-Fix-the-logical-replication-timeout-during-large.patch