Thread: Re: [pgsql-hackers-win32] Performance on Win32 vs Cygwin

Re: [pgsql-hackers-win32] Performance on Win32 vs Cygwin

From
"Merlin Moncure"
Date:
> Thanks Magnus,
>
> So are we correct to rely on
> - 8 being slower than 7.x in general and
> - 8 on Win32 being a little faster than 8 on Cygwin?
>
> Will the final release of 8 be faster than the beta?

I'm pretty certain that previous to 8.0 no win32 based postgesql
properly sync()ed the files.  Win32 does not have sync(), and it is
impossible to emulate it without relying on the application to track
which files to sync.  8.0 does this because it fsync()s the files
individually.  Therefore, benchmarking fsync=on on 8.0 to a <8.0 version
of windows is not apples to apples.  This includes, by the way, the SFU
based port of postgresql because they didn't implement sync() there,
either.

Other than the sync() issue, the cygwin/win32 i/o performance should be
roughly equal.   Unless I'm terribly mistaken about things, all the i/o
calls should boil down to win32 api calls.

The cygwin IPC stack is implemented differently...pg 8.0 win32 native
version does all the ipc stuff by hand, so you might get slightly
different behavior there.

Merln

Re: [pgsql-hackers-win32] Performance on Win32 vs Cygwin

From
Tom Lane
Date:
"Merlin Moncure" <merlin.moncure@rcsonline.com> writes:
> I'm pretty certain that previous to 8.0 no win32 based postgesql
> properly sync()ed the files.  Win32 does not have sync(), and it is
> impossible to emulate it without relying on the application to track
> which files to sync.  8.0 does this because it fsync()s the files
> individually.  Therefore, benchmarking fsync=on on 8.0 to a <8.0 version
> of windows is not apples to apples.  This includes, by the way, the SFU
> based port of postgresql because they didn't implement sync() there,
> either.

This is all true, but for performance testing I am not sure that you'd
notice much difference, because the sync or lack of it only happens
within checkpoints.

            regards, tom lane