Re: review: pgbench - aggregation of info written into log
От | Andrew Dunstan |
---|---|
Тема | Re: review: pgbench - aggregation of info written into log |
Дата | |
Msg-id | 50F74A6E.9050702@dunslane.net обсуждение исходный текст |
Ответ на | Re: review: pgbench - aggregation of info written into log (Tatsuo Ishii <ishii@postgresql.org>) |
Ответы |
Re: review: pgbench - aggregation of info written into
log
|
Список | pgsql-hackers |
On 01/16/2013 06:48 PM, Tatsuo Ishii wrote: >>> I'm looking into this as a committer. It seems that this is the >>> newest patch and the reviewer(Pavel) stated that it is ready for >>> commit. However, I noticed that this patch adds a Linux/UNIX only >>> feature(not available on Windows). So I would like to ask cores if >>> this is ok or not. >> I haven't been following the thread, but if the complaint is that >> Windows doesn't have accurate high-resolution timers, which is what it >> kinda looks like from the rest of your message, then it's not >> true. Every version since Windows2000 has had >> QueryPerformanceCounter()/QueryPerformanceFrequency(). And we use it: >> see src/include/portability/instr_time.h > In my understanding the problem is not related to resolution. > >> If that's not the problem, then can someone please point me at the >> message that sets the problem out clearly, or else just recap it? > 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> cheers andrew
В списке pgsql-hackers по дате отправления: