RE: Logical replication timeout problem

Wei Wang (Fujitsu) <wangw.fnst@fujitsu.com>

From: "wangw.fnst@fujitsu.com" <wangw.fnst@fujitsu.com>
To: Ajin Cherian <itsajin@gmail.com>
Cc: "kuroda.hayato@fujitsu.com" <kuroda.hayato@fujitsu.com>, Peter Smith <smithpb2250@gmail.com>, Fabrice Chapuis <fabrice636861@gmail.com>, Simon Riggs <simon.riggs@enterprisedb.com>, Petr Jelinek <petr.jelinek@enterprisedb.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>, Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-03-09T02:25:15Z
Lists: pgsql-hackers

Attachments

On Tues, Mar 8, 2022 at 11:54 PM Ajin Cherian <itsajin@gmail.com> wrote:
> Some comments.
Thanks for your comments.

> 1. The comment  on top of SendKeepaliveIfNecessary
> 
>  Try to send a keepalive message if too many changes was skipped.
> 
> change to
> 
> Try to send a keepalive message if too many changes wer skipped.
Fixed. Change 'was' to 'were'.

> 2. In pgoutput_change:
> 
> + /* Reset the counter for skipped changes. */
> + SendKeepaliveIfNecessary(ctx, false);
> +
> 
> This reset is called too early, this function might go on to skip
> changes because of the row filter, so this
> reset fits better once we know for sure that a change is sent out. You
> will also need to send keep alive
> when the change is skipped due to the row filter.
Fixed. Add a flag 'is_send' to record whether the change is sent, then reset
the counter or try to send a keepalive message based on the flag 'is_send'.

Attach the new patch.
1. Fix typo in comment on top of SendKeepaliveIfNecessary.[suggestion by Ajin.]
2. Add handling of cases filtered out by row filter.[suggestion by Ajin.]

Regards,
Wang wei

Commits

  1. Fix the logical replication timeout during large DDLs.

  2. Fix the logical replication timeout during large transactions.

  3. Rethink the delay-checkpoint-end mechanism in the back-branches.

  4. Revert "Logical decoding of sequences"

  5. Skip empty transactions for logical replication.

  6. Allow specifying column lists for logical replication

  7. Add decoding of sequences to built-in replication

  8. Fix ABI break introduced by commit 4daa140a2f.

  9. Lag tracking for logical replication