aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Geoghegan <pg@bowt.ie>2021-08-27 13:33:58 -0700
committerPeter Geoghegan <pg@bowt.ie>2021-08-27 13:33:58 -0700
commit6a1095234e0fcfa5c2f618c7c841e8ffe3c6c712 (patch)
tree3b81257eb3bd9501990948c9e0a5521b3d722fdb
parentfd134f374ef7a8cc0b2d878a92dfe2c7088e084b (diff)
downloadpostgresql-6a1095234e0fcfa5c2f618c7c841e8ffe3c6c712.tar.gz
postgresql-6a1095234e0fcfa5c2f618c7c841e8ffe3c6c712.zip
track_io_timing logging: Don't special case 0 ms.
Adjust track_io_timing related logging code added by commit 94d13d474d. Make it consistent with other nearby autovacuum and autoanalyze logging code by removing logic that suppressed zero millisecond outputs. log_autovacuum_min_duration log output now reliably shows "read:" and "write:" millisecond-based values in its report (when track_io_timing is enabled). Author: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Stephen Frost <sfrost@snowman.net> Discussion: https://postgr.es/m/CAH2-WznW0FNxSVQMSRazAMYNfZ6DR_gr5WE78hc6E1CBkkJpzw@mail.gmail.com Backpatch: 14-, where the track_io_timing logging was introduced.
-rw-r--r--src/backend/access/heap/vacuumlazy.c15
-rw-r--r--src/backend/commands/analyze.c15
2 files changed, 10 insertions, 20 deletions
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index 7074b676d30..49c054ca31b 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -840,16 +840,11 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
}
if (track_io_timing)
{
- appendStringInfoString(&buf, _("I/O timings:"));
- if (pgStatBlockReadTime - startreadtime > 0)
- appendStringInfo(&buf, _(" read: %.3f ms"),
- (double) (pgStatBlockReadTime - startreadtime) / 1000);
- if ((pgStatBlockReadTime - startreadtime > 0) && (pgStatBlockWriteTime - startwritetime > 0))
- appendStringInfoString(&buf, _(","));
- if (pgStatBlockWriteTime - startwritetime > 0)
- appendStringInfo(&buf, _(" write: %.3f ms"),
- (double) (pgStatBlockWriteTime - startwritetime) / 1000);
- appendStringInfoChar(&buf, '\n');
+ double read_ms = (double) (pgStatBlockReadTime - startreadtime) / 1000;
+ double write_ms = (double) (pgStatBlockWriteTime - startwritetime) / 1000;
+
+ appendStringInfo(&buf, _("I/O timings: read: %.3f ms, write: %.3f ms\n"),
+ read_ms, write_ms);
}
appendStringInfo(&buf, _("avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"),
read_rate, write_rate);
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index a17349bcd6c..b31426e2b21 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -779,16 +779,11 @@ do_analyze_rel(Relation onerel, VacuumParams *params,
RelationGetRelationName(onerel));
if (track_io_timing)
{
- appendStringInfoString(&buf, _("I/O timings:"));
- if (pgStatBlockReadTime - startreadtime > 0)
- appendStringInfo(&buf, _(" read: %.3f ms"),
- (double) (pgStatBlockReadTime - startreadtime) / 1000);
- if ((pgStatBlockReadTime - startreadtime > 0) && (pgStatBlockWriteTime - startwritetime > 0))
- appendStringInfoString(&buf, _(","));
- if (pgStatBlockWriteTime - startwritetime > 0)
- appendStringInfo(&buf, _(" write: %.3f ms"),
- (double) (pgStatBlockWriteTime - startwritetime) / 1000);
- appendStringInfoChar(&buf, '\n');
+ double read_ms = (double) (pgStatBlockReadTime - startreadtime) / 1000;
+ double write_ms = (double) (pgStatBlockWriteTime - startwritetime) / 1000;
+
+ appendStringInfo(&buf, _("I/O timings: read: %.3f ms, write: %.3f ms\n"),
+ read_ms, write_ms);
}
appendStringInfo(&buf, _("avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"),
read_rate, write_rate);