Re: Committing Resources to Win32

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: pgsql-hackers-win32(at)postgresql(dot)org
Subject: Re: Committing Resources to Win32
Date: 2003-11-11 00:04:19
Message-ID: 3FB02783.6000606@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers-win32

Joshua D. Drake wrote:

>
>>
>> Joshua, can you tell us any more about the nature of your client's
>> app(s)? Speculating like this in the dark is a bit fruitless.
>>
> I can't legally tell you much but what I can tell you is:
>
> There application creates a great deal of processes that open and close.
> On Linux which has a very light process model the performance hit is
> nominal. On platforms like Win32 or Solaris where processes are
> expensive, under heavy load you can see a pretty significant increase
> in performance by going to a threaded model.
>
> They are currently running our Cygwin installation which combined with
> connection pooling has provided "ok" performance but nothing
> worth writing home about (especially considering they compared against
> Linux).

I think the short answer is that we should do better than the Cygwin
version (a lot better, probably) - anecdotal information about the
previous PeerDirect port suggested significant performance gains, but
not as well as a threaded version. I personally ran that version very
happily for months, but not under heavy connection load. If they see big
improvements with threads on Solaris they would probably see bigger
improvements on Windows, I suspect, although Solaris process creation
cost is notoriously high (as it is on Windows).

>
> I am not going to lie, from a Windows perspective I am a little bit of
> a PHB. I don't develop (personally) on Windows. However the
> customer requirements are simple:
>
> Command Prompt needs to provide a native Win32 PostgreSQL version that
> supplies a reasonable proximity of performance
> per the Linux native version. The Win32 native version must also
> maintain the same level of transactibility as the Linux version.
>
> My customer is a house of Windows C/C++ and they are telling me that
> using CreateProcess will not generate that proximity.
>
> They and I could be totally on crack, but my own research suggests
> pretty much the same thing and the Windows programmers
> that I have talked to that are not associated with this customer also
> say the same thing.

You are not on crack. The question is how we can get there, within the
generally accepted parameters of the PostgreSQL project. Those include,
as I understand it,
. use of Open Source software tools only to build, and
. maintaining a single body of code

>
>
> What this all comes down to for us is this:
>
> Can we (the community) develop a Win32 native version using
> CreateProcess that will scale and perform at a level that
> is acceptable to wide general use. Understanding that for many
> operations PostgreSQL on Linux will perform as well if
> not faster than the other well known database with the letter O in
> their name.

Depends right now on your definition of "wide use" ;-) The "O" entity's
connection times are also notoriously slow. I think we can get
acceptable performance for what I would regard as typical usage
patterns. But possibly not right now for your client's usage pattern.

cheers

andrew

In response to

Browse pgsql-hackers-win32 by date

  From Date Subject
Next Message Jim Jones 2003-11-11 00:15:29 Re: Committing Resources to Win32
Previous Message Bruce Momjian 2003-11-10 23:45:13 Re: status?