From e82511855a595a3dafbcc4be53138a7e400f5551 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 13 Nov 2003 03:45:33 +0000 Subject: [PATCH] Add to Win32 discussion. --- doc/TODO.detail/win32 | 112 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) diff --git a/doc/TODO.detail/win32 b/doc/TODO.detail/win32 index cddd59cc47..a170899200 100644 --- a/doc/TODO.detail/win32 +++ b/doc/TODO.detail/win32 @@ -6475,7 +6475,7 @@ X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-Spam-Status: Yes, hits=5.0 required=5.0 tests=RCVD_IN_OSIRUSOFT_COM,X_OSIRU_SPAM_SRC version=2.20 X-Spam-Flag: YES X-Spam-Level: ***** -X-Spam-Checker-Version: SpamAssassin 2.20 (devel $Id: win32,v 1.5 2003/05/23 16:34:35 momjian Exp $) +X-Spam-Checker-Version: SpamAssassin 2.20 (devel $Id: win32,v 1.6 2003/11/13 03:45:33 momjian Exp $) X-Spam-Report: Detailed Report SPAM: -------------------- Start SpamAssassin results ---------------------- SPAM: This mail is probably spam. The original message has been altered @@ -9732,3 +9732,113 @@ TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly +From pgsql-hackers-win32-owner+M201@postgresql.org Tue Nov 11 15:00:07 2003 +Return-path: +Received: from noon.pghoster.com ([64.246.0.64]) + by candle.pha.pa.us (8.11.6/8.11.6) with ESMTP id hABK01q22399 + for ; Tue, 11 Nov 2003 15:00:04 -0500 (EST) +Received: from svr1.postgresql.org ([200.46.204.71] helo=postgresql.org) + by noon.pghoster.com with esmtp (Exim 4.20) + id 1AJefU-0007cv-4L; Tue, 11 Nov 2003 13:59:16 -0600 +X-Original-To: pgsql-hackers-win32-postgresql.org@localhost.postgresql.org +Received: from localhost (unknown [200.46.204.2]) + by svr1.postgresql.org (Postfix) with ESMTP id 79C28D1B537 + for ; Tue, 11 Nov 2003 19:59:09 +0000 (GMT) +Received: from svr1.postgresql.org ([200.46.204.71]) + by localhost (neptune.hub.org [200.46.204.2]) (amavisd-new, port 10024) + with ESMTP id 12494-07 + for ; + Tue, 11 Nov 2003 15:58:39 -0400 (AST) +Received: from cuthbert.rcsinc.local (unknown [205.217.85.91]) + by svr1.postgresql.org (Postfix) with ESMTP id 3798FD1B50D + for ; Tue, 11 Nov 2003 15:58:37 -0400 (AST) +Content-Class: urn:content-classes:message +MIME-Version: 1.0 +Content-Type: text/plain; + charset="us-ascii" +Subject: [pgsql-hackers-win32] CreateProcess vs. CreateThread (was: Committing Resources to Win32) +X-MimeOLE: Produced By Microsoft Exchange V6.0.6375.0 +Date: Tue, 11 Nov 2003 14:58:23 -0500 +Message-ID: <303E00EBDD07B943924382E153890E5434AA08@cuthbert.rcsinc.local> +Thread-Topic: CreateProcess vs. CreateThread (was: Committing Resources to Win32) +Thread-Index: AcOocYEp+LfkD1VdRtuF8Post6o+9gACl8Hg +From: "Merlin Moncure" +To: "Joshua D. Drake" +cc: +X-Virus-Scanned: by amavisd-new at postgresql.org +X-Mailing-List: pgsql-hackers-win32 +Precedence: bulk +Sender: pgsql-hackers-win32-owner@postgresql.org +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - noon.pghoster.com +X-AntiAbuse: Original Domain - candle.pha.pa.us +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - postgresql.org +Content-Transfer-Encoding: 8bit +X-MIME-Autoconverted: from quoted-printable to 8bit by candle.pha.pa.us id hABK01q22399 +Status: OR + +Joshua D. Drake wrote: +> >problem is the ipc-daemon which has a tendency to crash. It seems +> >slower on writes, but that is strictly anecdotal. With synching off, +it +> >hums along happily. +> > +> It is slower on rights, connection startup, limited on connections, +> tcp/ip transfer and you should +> never run PostgreSQL with sync off unless you are not worried about +data +> integrity. + +I agree 100%. See notes below. + +> >The perceived win32 process management problems are a total red +herring. +> > +> > +> I disagree... read the other posts. CreateProcess does not scale like +> CreateThread. + +Here is a good resource comparing process creation on Linux and NT (with +source). + +http://www-106.ibm.com/developerworks/linux/library/l-rt7/?t=gr,Redhat=T +headsMgt + +NT can create 150 processes/sec (vs. 300+ on Linux 2.4.2). Even with +the slower process creation time, most postgres applications will spend +a tiny fraction of their time inside process creation. Again, this is +much more relevant to a web server than a database server. Compile and +run the code supplied in the link if you don't believe me (and I don't +expect you to :)). + +My point about cygwin was to try and illustrate that the performance +problems wrt postgres on win32 are almost certainly going to be I/O +based, not process based (as evidenced by the decent performance with +fsync=off), and this is due to the way files are synched (somebody +correct me if I'm wrong on this point). I would hate to see you spend a +bunch of time implementing threading only to find out you are better off +than with the cygwin version. In case I am wrong, it might be +informative to fire up a threaded port to see if the end justifies the +means. The best apples to apples comparison is to run cygwin/peerdirect +fsync=off vs. linux fsync=off. This is not useful in a production +sense, but will help tell the relative performance wrt threads vs. +processes. + +My gut tells me the proper path is to: +1. Implement no frills process based port to win32 based on (as much as +possible) native sources and native build environment. +2. Troubleshoot specific performance problems, which will most likely be +on the I/O side. Fixing them may ultimately lead to api level file +calls (possibly including asynch I/O) on win32, which may be the only +way that platform will ever run postgres as good as on the unix side of +things. + +Regards, +Merlin + +---------------------------(end of broadcast)--------------------------- +TIP 5: Have you checked our extensive FAQ? + + http://www.postgresql.org/docs/faqs/FAQ.html +