+From pgsql-hackers-owner+M4304@postgresql.org Tue Feb 6 10:24:21 2001
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id KAA22027
+ for <pgman@candle.pha.pa.us>; Tue, 6 Feb 2001 10:24:20 -0500 (EST)
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f16FOBx97182;
+ Tue, 6 Feb 2001 10:24:11 -0500 (EST)
+ (envelope-from pgsql-hackers-owner+M4304@postgresql.org)
+Received: from goldengate.kojoworldwide.com. ([216.133.4.130])
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f16FLWx96814
+ for <pgsql-hackers@postgresql.org>; Tue, 6 Feb 2001 10:21:33 -0500 (EST)
+ (envelope-from mscott@sacadia.com)
+Received: from localhost (localhost [127.0.0.1])
+ by goldengate.kojoworldwide.com. (8.9.1b+Sun/8.9.2) with ESMTP id HAA04170;
+ Tue, 6 Feb 2001 07:05:04 -0800 (PST)
+Date: Tue, 6 Feb 2001 07:05:04 -0800 (PST)
+From: Myron Scott <mscott@sacadia.com>
+X-Sender: mscott@goldengate.kojoworldwide.com.
+To: Karel Zak <zakkr@zf.jcu.cz>
+cc: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] Using Threads
+In-Reply-To: <Pine.LNX.3.96.1010206101030.20355B-100000@ara.zf.jcu.cz>
+Message-ID: <Pine.GSO.4.10.10102060650250.4153-100000@goldengate.kojoworldwide.com.>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+
+>
+> Sorry I haven't time to see and test your experiment,
+> but I have a question. How you solve memory management?
+> The current mmgr is based on global variable
+> CurrentMemoryContext that is very often changed and used.
+> Use you for this locks? If yes it is probably problematic
+> point for perfomance.
+>
+> Karel
+>
+
+There are many many globals I had to work around including all the memory
+management stuff. I basically threw everything into and "environment"
+variable which I stored in a thread specific using thr_setspecific.
+
+Performance is acually very good for what I am doing. I was able to batch
+commit transactions which cuts down on fsync calls, use prepared
+statements from my client using CORBA, and the various locking calls for
+the threads (cond_wait,mutex_lock, and sema_wait) seem pretty fast. I did
+some performance tests for inserts
+
+20 clients, 900 inserts per client, 1 insert per transaction, 4 different
+tables.
+
+7.0.2 About 10:52 average completion
+multi-threaded 2:42 average completion
+7.1beta3 1:13 average completion
+
+If I increased the number of inserts per transaction, multi-threaded got
+closer to 7.1 for inserts. I haven't tested other other types of
+commands
+yet.
+
+
+Myron Scott
+mkscott@sacadia.com
+
+