mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
Cosmetic fixups for WAL usage work.
Reported-by: Justin Pryzby and Euler Taveira Author: Justin Pryzby and Julien Rouhaud Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/CAB-hujrP8ZfUkvL5OYETipQwA=e3n7oqHFU=4ZLxWS_Cza3kQQ@mail.gmail.com
This commit is contained in:
parent
0c620a5803
commit
ef08ca113f
@ -43,7 +43,7 @@ CREATE FUNCTION pg_stat_statements(IN showtext boolean,
|
|||||||
OUT blk_read_time float8,
|
OUT blk_read_time float8,
|
||||||
OUT blk_write_time float8,
|
OUT blk_write_time float8,
|
||||||
OUT wal_records int8,
|
OUT wal_records int8,
|
||||||
OUT wal_num_fpw int8,
|
OUT wal_fpw int8,
|
||||||
OUT wal_bytes numeric
|
OUT wal_bytes numeric
|
||||||
)
|
)
|
||||||
RETURNS SETOF record
|
RETURNS SETOF record
|
||||||
|
@ -189,7 +189,7 @@ typedef struct Counters
|
|||||||
double blk_write_time; /* time spent writing, in msec */
|
double blk_write_time; /* time spent writing, in msec */
|
||||||
double usage; /* usage factor */
|
double usage; /* usage factor */
|
||||||
int64 wal_records; /* # of WAL records generated */
|
int64 wal_records; /* # of WAL records generated */
|
||||||
int64 wal_num_fpw; /* # of WAL full page image records generated */
|
int64 wal_fpw; /* # of WAL full page writes generated */
|
||||||
uint64 wal_bytes; /* total amount of WAL bytes generated */
|
uint64 wal_bytes; /* total amount of WAL bytes generated */
|
||||||
} Counters;
|
} Counters;
|
||||||
|
|
||||||
@ -1432,7 +1432,7 @@ pgss_store(const char *query, uint64 queryId,
|
|||||||
e->counters.blk_write_time += INSTR_TIME_GET_MILLISEC(bufusage->blk_write_time);
|
e->counters.blk_write_time += INSTR_TIME_GET_MILLISEC(bufusage->blk_write_time);
|
||||||
e->counters.usage += USAGE_EXEC(total_time);
|
e->counters.usage += USAGE_EXEC(total_time);
|
||||||
e->counters.wal_records += walusage->wal_records;
|
e->counters.wal_records += walusage->wal_records;
|
||||||
e->counters.wal_num_fpw += walusage->wal_num_fpw;
|
e->counters.wal_fpw += walusage->wal_fpw;
|
||||||
e->counters.wal_bytes += walusage->wal_bytes;
|
e->counters.wal_bytes += walusage->wal_bytes;
|
||||||
|
|
||||||
SpinLockRelease(&e->mutex);
|
SpinLockRelease(&e->mutex);
|
||||||
@ -1824,7 +1824,7 @@ pg_stat_statements_internal(FunctionCallInfo fcinfo,
|
|||||||
Datum wal_bytes;
|
Datum wal_bytes;
|
||||||
|
|
||||||
values[i++] = Int64GetDatumFast(tmp.wal_records);
|
values[i++] = Int64GetDatumFast(tmp.wal_records);
|
||||||
values[i++] = Int64GetDatumFast(tmp.wal_num_fpw);
|
values[i++] = Int64GetDatumFast(tmp.wal_fpw);
|
||||||
|
|
||||||
snprintf(buf, sizeof buf, UINT64_FORMAT, tmp.wal_bytes);
|
snprintf(buf, sizeof buf, UINT64_FORMAT, tmp.wal_bytes);
|
||||||
|
|
||||||
|
@ -278,16 +278,16 @@
|
|||||||
<entry><type>bigint</type></entry>
|
<entry><type>bigint</type></entry>
|
||||||
<entry></entry>
|
<entry></entry>
|
||||||
<entry>
|
<entry>
|
||||||
Total count of WAL records generated by the statement
|
Total number of WAL records generated by the statement
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry><structfield>wal_num_fpw</structfield></entry>
|
<entry><structfield>wal_fpw</structfield></entry>
|
||||||
<entry><type>bigint</type></entry>
|
<entry><type>bigint</type></entry>
|
||||||
<entry></entry>
|
<entry></entry>
|
||||||
<entry>
|
<entry>
|
||||||
Total count of WAL full page writes generated by the statement
|
Total number of WAL full page writes generated by the statement
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
@ -198,8 +198,8 @@ ROLLBACK;
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Include information on WAL record generation. Specifically, include the
|
Include information on WAL record generation. Specifically, include the
|
||||||
number of records, number of full page image records and amount of WAL
|
number of records, number of full page writes and amount of WAL bytes
|
||||||
bytes generated. In text format, only non-zero values are printed. This
|
generated. In text format, only non-zero values are printed. This
|
||||||
parameter may only be used when <literal>ANALYZE</literal> is also
|
parameter may only be used when <literal>ANALYZE</literal> is also
|
||||||
enabled. It defaults to <literal>FALSE</literal>.
|
enabled. It defaults to <literal>FALSE</literal>.
|
||||||
</para>
|
</para>
|
||||||
|
@ -676,7 +676,7 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
|
|||||||
_("WAL usage: %ld records, %ld full page writes, "
|
_("WAL usage: %ld records, %ld full page writes, "
|
||||||
UINT64_FORMAT " bytes"),
|
UINT64_FORMAT " bytes"),
|
||||||
walusage.wal_records,
|
walusage.wal_records,
|
||||||
walusage.wal_num_fpw,
|
walusage.wal_fpw,
|
||||||
walusage.wal_bytes);
|
walusage.wal_bytes);
|
||||||
|
|
||||||
ereport(LOG,
|
ereport(LOG,
|
||||||
|
@ -1258,7 +1258,7 @@ XLogInsertRecord(XLogRecData *rdata,
|
|||||||
{
|
{
|
||||||
pgWalUsage.wal_bytes += rechdr->xl_tot_len;
|
pgWalUsage.wal_bytes += rechdr->xl_tot_len;
|
||||||
pgWalUsage.wal_records++;
|
pgWalUsage.wal_records++;
|
||||||
pgWalUsage.wal_num_fpw += num_fpw;
|
pgWalUsage.wal_fpw += num_fpw;
|
||||||
}
|
}
|
||||||
|
|
||||||
return EndPos;
|
return EndPos;
|
||||||
|
@ -3343,7 +3343,7 @@ show_wal_usage(ExplainState *es, const WalUsage *usage)
|
|||||||
if (es->format == EXPLAIN_FORMAT_TEXT)
|
if (es->format == EXPLAIN_FORMAT_TEXT)
|
||||||
{
|
{
|
||||||
/* Show only positive counter values. */
|
/* Show only positive counter values. */
|
||||||
if ((usage->wal_records > 0) || (usage->wal_num_fpw > 0) ||
|
if ((usage->wal_records > 0) || (usage->wal_fpw > 0) ||
|
||||||
(usage->wal_bytes > 0))
|
(usage->wal_bytes > 0))
|
||||||
{
|
{
|
||||||
ExplainIndentText(es);
|
ExplainIndentText(es);
|
||||||
@ -3352,9 +3352,9 @@ show_wal_usage(ExplainState *es, const WalUsage *usage)
|
|||||||
if (usage->wal_records > 0)
|
if (usage->wal_records > 0)
|
||||||
appendStringInfo(es->str, " records=%ld",
|
appendStringInfo(es->str, " records=%ld",
|
||||||
usage->wal_records);
|
usage->wal_records);
|
||||||
if (usage->wal_num_fpw > 0)
|
if (usage->wal_fpw > 0)
|
||||||
appendStringInfo(es->str, " full page writes=%ld",
|
appendStringInfo(es->str, " full page writes=%ld",
|
||||||
usage->wal_num_fpw);
|
usage->wal_fpw);
|
||||||
if (usage->wal_bytes > 0)
|
if (usage->wal_bytes > 0)
|
||||||
appendStringInfo(es->str, " bytes=" UINT64_FORMAT,
|
appendStringInfo(es->str, " bytes=" UINT64_FORMAT,
|
||||||
usage->wal_bytes);
|
usage->wal_bytes);
|
||||||
@ -3366,7 +3366,7 @@ show_wal_usage(ExplainState *es, const WalUsage *usage)
|
|||||||
ExplainPropertyInteger("WAL records", NULL,
|
ExplainPropertyInteger("WAL records", NULL,
|
||||||
usage->wal_records, es);
|
usage->wal_records, es);
|
||||||
ExplainPropertyInteger("WAL full page writes", NULL,
|
ExplainPropertyInteger("WAL full page writes", NULL,
|
||||||
usage->wal_num_fpw, es);
|
usage->wal_fpw, es);
|
||||||
ExplainPropertyUInteger("WAL bytes", NULL,
|
ExplainPropertyUInteger("WAL bytes", NULL,
|
||||||
usage->wal_bytes, es);
|
usage->wal_bytes, es);
|
||||||
}
|
}
|
||||||
|
@ -248,7 +248,7 @@ WalUsageAdd(WalUsage *dst, WalUsage *add)
|
|||||||
{
|
{
|
||||||
dst->wal_bytes += add->wal_bytes;
|
dst->wal_bytes += add->wal_bytes;
|
||||||
dst->wal_records += add->wal_records;
|
dst->wal_records += add->wal_records;
|
||||||
dst->wal_num_fpw += add->wal_num_fpw;
|
dst->wal_fpw += add->wal_fpw;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -256,5 +256,5 @@ WalUsageAccumDiff(WalUsage *dst, const WalUsage *add, const WalUsage *sub)
|
|||||||
{
|
{
|
||||||
dst->wal_bytes += add->wal_bytes - sub->wal_bytes;
|
dst->wal_bytes += add->wal_bytes - sub->wal_bytes;
|
||||||
dst->wal_records += add->wal_records - sub->wal_records;
|
dst->wal_records += add->wal_records - sub->wal_records;
|
||||||
dst->wal_num_fpw += add->wal_num_fpw - sub->wal_num_fpw;
|
dst->wal_fpw += add->wal_fpw - sub->wal_fpw;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ typedef struct BufferUsage
|
|||||||
typedef struct WalUsage
|
typedef struct WalUsage
|
||||||
{
|
{
|
||||||
long wal_records; /* # of WAL records produced */
|
long wal_records; /* # of WAL records produced */
|
||||||
long wal_num_fpw; /* # of WAL full page image writes produced */
|
long wal_fpw; /* # of WAL full page writes produced */
|
||||||
uint64 wal_bytes; /* size of WAL records produced */
|
uint64 wal_bytes; /* size of WAL records produced */
|
||||||
} WalUsage;
|
} WalUsage;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user