Hi, TState has a field called "conn_duration" and this is, the comment says, "cumulated connection and deconnection delays". This value is summed over threads and reported as "average connection time" under -C/--connect. If this options is not specified, the value is never used.
However, I found that conn_duration is calculated even when -C/--connect is not specified, which is waste. SO we can remove this code as fixed in the attached patch. In addition, deconnection delays are not cumulated even under -C/--connect in spite of mentioned in the comment. I also fixed this in the attached patch. Regards, Yugo Nagata -- Yugo NAGATA <nag...@sraoss.co.jp>
diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index d7479925cb..1ec42a3ba2 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -3536,8 +3536,10 @@ advanceConnectionState(TState *thread, CState *st, StatsData *agg) if (is_connect) { + pg_time_usec_t start = pg_time_now(); + finishCon(st); - now = 0; + thread->conn_duration += pg_time_now() - start; } if ((st->cnt >= nxacts && duration <= 0) || timer_exceeded) @@ -6421,6 +6423,7 @@ main(int argc, char **argv) thread->logfile = NULL; /* filled in later */ thread->latency_late = 0; initStats(&thread->stats, 0); + thread->conn_duration = 0; nclients_dealt += thread->nstate; } @@ -6584,14 +6587,6 @@ threadRun(void *arg) goto done; } } - - /* compute connection delay */ - thread->conn_duration = pg_time_now() - thread->started_time; - } - else - { - /* no connection delay to record */ - thread->conn_duration = 0; } /* GO */