Re: Performance on Win32 vs Cygwin

Lists: pgsql-hackers-win32pgsql-performance
From: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
To: "MikeSmialek2(at)Hotmail(dot)com" <mikesmialek2(at)hotmail(dot)com>
Cc: <pgsql-hackers-win32(at)postgresql(dot)org>, <pgsql-performance(at)postgresql(dot)org>, "Magnus Hagander" <mha(at)sollentuna(dot)net>
Subject: Re: Performance on Win32 vs Cygwin
Date: 2004-10-15 16:22:40
Message-ID: 6EE64EF3AB31D5448D0007DD34EEB3412A7506@Herge.rcsinc.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32 pgsql-performance

> 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


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
Cc: "MikeSmialek2(at)Hotmail(dot)com" <mikesmialek2(at)hotmail(dot)com>, pgsql-hackers-win32(at)postgresql(dot)org, pgsql-performance(at)postgresql(dot)org, "Magnus Hagander" <mha(at)sollentuna(dot)net>
Subject: Re: [PERFORM] Performance on Win32 vs Cygwin
Date: 2004-10-15 17:55:11
Message-ID: 11490.1097862911@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers-win32 pgsql-performance

"Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)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