Re: Committing Resources to Win32

Поиск
Список
Период
Сортировка
От Jim Jones
Тема Re: Committing Resources to Win32
Дата
Msg-id 001b01c3a7e8$e9f22e40$0300000a@chatserver
обсуждение исходный текст
Ответ на Re: Committing Resources to Win32  ("Joshua D. Drake" <jd@commandprompt.com>)
Ответы Re: Committing Resources to Win32  (Andrew Dunstan <andrew@dunslane.net>)
Re: Committing Resources to Win32  (Marsh Ray <marsh-pg@mysteray.com>)
Список pgsql-hackers-win32
If you guys have already discussed the following possibilities, I
apologize.  I joined the list late.

The correct way to create a high performance server on the Windows
platform (NT, Advanced Server, etc) is to utilize IO Completion Ports.
The kernel will manage your connection pool and threading for you.  Any
object that is serializable can utilize this model (sockets, files,
etc).

If one thread becomes busy with processing, a second worker thread is
awoken, and it performs the processing. Sockets and threads are all
preallocated to increase performance.

Here are a couple informative articles on the subject :

Writing scalable server applications using IOCP
http://www.codeproject.com/internet/iocp.asp

Developing a Truly Scalable Winsock Server using IO Completion Ports
http://www.codeproject.com/internet/winsockiocp.asp

The Microsoft SDK comes with a free compiler, but you will have access
to only the API functions, none of the frameworks (MFC, ATL, etc).

Jim


-----Original Message-----
From: pgsql-hackers-win32-owner@postgresql.org
[mailto:pgsql-hackers-win32-owner@postgresql.org] On Behalf Of Joshua D.
Drake
Sent: Monday, November 10, 2003 4:57 PM
To: Andrew Dunstan
Cc: pgsql-hackers-win32@postgresql.org
Subject: Re: [pgsql-hackers-win32] Committing Resources to Win32


> *nod*
>
> 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 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.

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.

Sincerely,

Joshua Drake




> cheers
>
> andrew
>
>
> ---------------------------(end of
broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>               http://www.postgresql.org/docs/faqs/FAQ.html


--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-222-2783 - jd@commandprompt.com - http://www.commandprompt.com
Editor-N-Chief - PostgreSQl.Org - http://www.postgresql.org



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org


В списке pgsql-hackers-win32 по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Committing Resources to Win32
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Other Win32 TODO items?