On Wed, Feb 1, 2023 at 4:43 AM Peter Smith <smithpb2...@gmail.com> wrote: > > Here are my review comments for v13-00001. > > ====== > Commit message > > 1. > The DDLs like Refresh Materialized views that generate lots of temporary > data due to rewrite rules may not be processed by output plugins (for > example pgoutput). So, we won't send keep-alive messages for a long time > while processing such commands and that can lead the subscriber side to > timeout. > > ~ > > SUGGESTION (minor rearranged way to say the same thing) > > For DDLs that generate lots of temporary data due to rewrite rules > (e.g. REFRESH MATERIALIZED VIEW) the output plugins (e.g. pgoutput) > may not be processed for a long time. Since we don't send keep-alive > messages while processing such commands that can lead the subscriber > side to timeout. >
Hmm, this makes it less clear and in fact changed the meaning. > ~~~ > > 2. > The commit message says what the problem is, but it doesn’t seem to > describe what this patch does to fix the problem. > I thought it was apparent and the code comments made it clear. > > 4. > +#define CHANGES_THRESHOLD 100 > + > + if (++changes_count >= CHANGES_THRESHOLD) > + { > + rb->update_progress_txn(rb, txn, change->lsn); > + changes_count = 0; > + } > > I was wondering if it would have been simpler to write this code like below. > > Also, by doing it this way the 'changes_count' variable name makes > more sense IMO, otherwise (for current code) maybe it should be called > something like 'changes_since_last_keepalive' > > SUGGESTION > if (++changes_count % CHANGES_THRESHOLD == 0) > rb->update_progress_txn(rb, txn, change->lsn); > I find the current code in the patch clear and easy to understand. -- With Regards, Amit Kapila.