Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-hackers-win32 by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group