On 23 April 2017 at 01:10, Petr Jelinek <petr.jeli...@2ndquadrant.com> wrote: > Hi, > > The time based lag tracking commit [1] added interface for logging > progress of replication so that we can report lag as time interval > instead of just bytes. But the patch didn't contain patch for the > builtin logical replication. > > So I wrote something that implements this. I didn't like all that much > the API layering in terms of exporting the walsender's LagTrackerWrite() > for use by plugin directly. Normally output plugin does not have to care > if it's running under walsender or not, it uses abstracted write > interface for that which can be implemented in various ways (that's how > we implement SQL interface to logical decoding after all). So I decided > to add another function to the logical decoding write api called > update_progress and call that one from the output plugin. The walsender > then implements that new API to call the LagTrackerWrite() while the SQL > interface just does not implement it at all. This seems like cleaner way > of doing it. > > Thoughts?
Agree cleaner. I don't see any pacing or comments about it, nor handling of intermediate messages while we process a large transaction. I'll look at adding some pacing code in WalSndUpdateProgress() -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers