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  (Tatsuo Ishii <ishii@postgresql.org>)
Список 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 по дате отправления:

Предыдущее
От: Kohei KaiGai
Дата:
Сообщение: Re: ALTER command reworks
Следующее
От: Jeff Janes
Дата:
Сообщение: Re: Parallel query execution