Re: review: pgbench - aggregation of info written into log

Tatsuo Ishii <ishii@postgresql.org>

From: Tatsuo Ishii <ishii@postgresql.org>
To: andrew@dunslane.net
Cc: tv@fuzzy.cz, pgsql-hackers@postgresql.org
Date: 2013-01-17T01:05:16Z
Lists: pgsql-hackers
>> It seems instr_time.h on Windows simply does not provide current
>> timestamp. From pgbench.c:
>>
>> 		/*
>> 		 * if transaction finished, record the time it took in the log
>> 		 */
>> 		if (logfile && commands[st->state + 1] == NULL)
>> 		{
>> 			instr_time	now;
>> 			instr_time	diff;
>> 			double		usec;
>>
>> 			INSTR_TIME_SET_CURRENT(now);
>> 			diff = now;
>> 			INSTR_TIME_SUBTRACT(diff, st->txn_begin);
>> 			usec = (double) INSTR_TIME_GET_MICROSEC(diff);
>>
>> #ifndef WIN32
>> 			/* This is more than we really ought to know about instr_time */
>> 			fprintf(logfile, "%d %d %.0f %d %ld %ld\n",
>> 					st->id, st->cnt, usec, st->use_file,
>> 					(long) now.tv_sec, (long) now.tv_usec);
>> #else
>> 			/* On Windows, instr_time doesn't provide a timestamp anyway */
>> 			fprintf(logfile, "%d %d %.0f %d 0 0\n",
>> 					st->id, st->cnt, usec, st->use_file);
>> #endif
>> 		}
> 
> 
> This might be way more than we want to do, but there is an article
> that describes some techniques for doing what seems to be missing
> (AIUI):
> 
> <http://msdn.microsoft.com/en-us/magazine/cc163996.aspx>

Even this would be doable, I'm afraid it may not fit in 9.3 if we
think about the current status of CF. So our choice would be:

1) Postpone the patch to 9.4

2) Commit the patch in 9.3 without Windows support

I personally am ok with #2. We traditionally avoid particular paltform
specific features on PostgreSQL.  However I think the policiy could be
losen for contrib staffs. Also pgbench is just a client program. We
could always use pgbench on UNIX/Linux if we truely need the feature.

What do you think?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp