mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Report statistics in logical replication workers
Author: Stas Kelvich <s.kelvich@postgrespro.ru> Author: Petr Jelinek <petr.jelinek@2ndquadrant.com> Reported-by: Fujii Masao <masao.fujii@gmail.com>
This commit is contained in:
@ -769,9 +769,10 @@ allow_immediate_pgstat_restart(void)
|
|||||||
/* ----------
|
/* ----------
|
||||||
* pgstat_report_stat() -
|
* pgstat_report_stat() -
|
||||||
*
|
*
|
||||||
* Called from tcop/postgres.c to send the so far collected per-table
|
* Must be called by processes that performs DML: tcop/postgres.c, logical
|
||||||
* and function usage statistics to the collector. Note that this is
|
* receiver processes, SPI worker, etc. to send the so far collected
|
||||||
* called only when not within a transaction, so it is fair to use
|
* per-table and function usage statistics to the collector. Note that this
|
||||||
|
* is called only when not within a transaction, so it is fair to use
|
||||||
* transaction stop time as an approximation of current time.
|
* transaction stop time as an approximation of current time.
|
||||||
* ----------
|
* ----------
|
||||||
*/
|
*/
|
||||||
|
@ -114,9 +114,15 @@ StringInfo copybuf = NULL;
|
|||||||
static void pg_attribute_noreturn()
|
static void pg_attribute_noreturn()
|
||||||
finish_sync_worker(void)
|
finish_sync_worker(void)
|
||||||
{
|
{
|
||||||
/* Commit any outstanding transaction. */
|
/*
|
||||||
|
* Commit any outstanding transaction. This is the usual case, unless
|
||||||
|
* there was nothing to do for the table.
|
||||||
|
*/
|
||||||
if (IsTransactionState())
|
if (IsTransactionState())
|
||||||
|
{
|
||||||
CommitTransactionCommand();
|
CommitTransactionCommand();
|
||||||
|
pgstat_report_stat(false);
|
||||||
|
}
|
||||||
|
|
||||||
/* And flush all writes. */
|
/* And flush all writes. */
|
||||||
XLogFlush(GetXLogWriteRecPtr());
|
XLogFlush(GetXLogWriteRecPtr());
|
||||||
|
@ -462,6 +462,7 @@ apply_handle_commit(StringInfo s)
|
|||||||
/* Process any tables that are being synchronized in parallel. */
|
/* Process any tables that are being synchronized in parallel. */
|
||||||
process_syncing_tables(commit_data.end_lsn);
|
process_syncing_tables(commit_data.end_lsn);
|
||||||
|
|
||||||
|
pgstat_report_stat(false);
|
||||||
pgstat_report_activity(STATE_IDLE, NULL);
|
pgstat_report_activity(STATE_IDLE, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user