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



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to