summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2001-01-23 01:23:13 +0000
committerBruce Momjian <bruce@momjian.us>2001-01-23 01:23:13 +0000
commit26aa69a2f69b4e5cfb87ecae3f133dccebd22c85 (patch)
treed1a42fd235ad83982a4702d05f2ab22b41832fbd
parent746d7e91456ad845997ca112851081e6c8e189ad (diff)
downloadpostgresql-26aa69a2f69b4e5cfb87ecae3f133dccebd22c85.tar.gz
Add threaded mention email.
-rw-r--r--doc/TODO.detail/thread232
1 files changed, 232 insertions, 0 deletions
diff --git a/doc/TODO.detail/thread b/doc/TODO.detail/thread
new file mode 100644
index 0000000000..c7a5a9b40c
--- /dev/null
+++ b/doc/TODO.detail/thread
@@ -0,0 +1,232 @@
+From mscott@sacadia.com Wed Nov 15 14:50:19 2000
+Received: from goldengate.kojoworldwide.com. ([216.133.4.130])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id OAA11583
+ for <pgman@candle.pha.pa.us>; Wed, 15 Nov 2000 14:50:13 -0500 (EST)
+Received: from localhost (localhost [127.0.0.1])
+ by goldengate.kojoworldwide.com. (8.9.1b+Sun/8.9.2) with ESMTP id LAA09998;
+ Wed, 15 Nov 2000 11:35:33 -0800 (PST)
+Date: Wed, 15 Nov 2000 11:35:33 -0800 (PST)
+From: Myron Scott <mscott@sacadia.com>
+X-Sender: mscott@goldengate.kojoworldwide.com.
+To: "Mikheev, Vadim" <vmikheev@SECTORBASE.COM>,
+ Bruce Momjian <pgman@candle.pha.pa.us>, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Please help with some advice
+Message-ID: <Pine.GSO.4.10.10011151053260.9940-100000@goldengate.kojoworldwide.com.>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Status: ORr
+
+Dear Sirs,
+
+I have been lurking on the PostgreSQL hackers list for about 3 months now
+and your names comes up more than any with helpful info about the project
+so I was hoping you could help me.
+
+Let me cut to the chase. I have been experimenting with 7.0.2 source to
+see if I could create a mutlti-threaded version of the backend so
+I could link directly from java ( I have a fe<->be protocol that I use for
+my apps). Needless to say I got into much more than I bargained for. I
+now have a version that works and it has some nice benefits that are very
+helpful to a project that I am working on. What I gained was
+
+prepared statements outside of spi
+batched commits (fsync)
+one connection per thread
+ multiple threads per process
+ multiple processes per installation
+
+I never really intended for anyone else to see the work so I drifted
+pretty far from the original code. I also ended up using Solaris threads
+rather than pthreads, I did my own implementation of the bufmgr.c and
+gram.y, and used Solaris implementation of mutex in place of S_LOCK and
+TAS. I grabbed all global variables and put them in an environment
+variable that is thread local. I also did some really stupid
+things like making TransactionId uint64 and making all my inserts use the
+same oid.
+
+My question is this. I would like to get some critical feedback and
+suggestions about the work from others. What is the best way to go about
+this? I thought about trying to create a project on greatbridge.org
+but I am rather new to open source and the code needs commented properly
+and cleaned up before too many try and look at it.
+
+Any suggestions would be greatly appreciated.
+
+
+Thanks in advance,
+
+Myron Scott
+
+
+
+From mscott@sacadia.com Thu Nov 16 17:19:45 2000
+Received: from goldengate.kojoworldwide.com. ([216.133.4.130])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id RAA04315
+ for <pgman@candle.pha.pa.us>; Thu, 16 Nov 2000 17:19:43 -0500 (EST)
+Received: from localhost (localhost [127.0.0.1])
+ by goldengate.kojoworldwide.com. (8.9.1b+Sun/8.9.2) with ESMTP id OAA11449;
+ Thu, 16 Nov 2000 14:05:15 -0800 (PST)
+Date: Thu, 16 Nov 2000 14:05:15 -0800 (PST)
+From: Myron Scott <mscott@sacadia.com>
+X-Sender: mscott@goldengate.kojoworldwide.com.
+To: Bruce Momjian <pgman@candle.pha.pa.us>
+cc: "Mikheev, Vadim" <vmikheev@SECTORBASE.COM>, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: Please help with some advice
+In-Reply-To: <200011160533.AAA27886@candle.pha.pa.us>
+Message-ID: <Pine.GSO.4.10.10011161401570.11441-100000@goldengate.kojoworldwide.com.>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Status: OR
+
+Bruce Momjian wrote:
+
+>I am curious how you isolated each thread. It seems we pretty much
+>assume all our memory is controlled by a single query in the process.
+
+
+I moved all global variables to a thread global variable which is accessed
+by the method GetEnv(). Which looks like this
+
+Env* GetEnv(void) {
+ Env* env;
+ thr_getspecific(*envkey,(void*)&env);
+ return env;
+}
+
+The Env struct includes the CurrentMemoryContext, TopMemoryContext,
+PortalHeapMemory for each instance of a connection (one thread per
+connection). So, for example,
+EndPortalAllocMode uses GetEnv()->CurrentMemoryContext
+
+void
+EndPortalAllocMode()
+{
+ PortalHeapMemory context;
+
+ AssertState(PortalManagerEnabled);
+ AssertState(IsA(GetEnv()->CurrentMemoryContext,
+PortalHeapMemory));
+
+ context = (PortalHeapMemory) GetEnv()->CurrentMemoryContext;
+ AssertState(PointerIsValid(context->block)); /* XXX
+Trap(...) */
+
+ /* free current mode */
+ AllocSetReset(&HEAPMEMBLOCK(context)->setData);
+ MemoryContextFree((MemoryContext)
+PortalHeapMemoryGetVariableMemory(context),
+ context->block);
+
+ /* restore previous mode */
+ context->block = FixedStackPop(&context->stackData);
+}
+
+
+
+
+From vmikheev@SECTORBASE.COM Thu Nov 16 17:23:22 2000
+Received: from sectorbase2.sectorbase.com ([208.48.122.131])
+ by candle.pha.pa.us (8.9.0/8.9.0) with SMTP id RAA04562
+ for <pgman@candle.pha.pa.us>; Thu, 16 Nov 2000 17:23:21 -0500 (EST)
+Received: by sectorbase2.sectorbase.com with Internet Mail Service (5.5.2650.21)
+ id <V8XQB5RW>; Thu, 16 Nov 2000 14:05:24 -0800
+Message-ID: <8F4C99C66D04D4118F580090272A7A234D318D@sectorbase1.sectorbase.com>
+From: "Mikheev, Vadim" <vmikheev@SECTORBASE.COM>
+To: "'Myron Scott'" <mscott@sacadia.com>,
+ Bruce Momjian
+ <pgman@candle.pha.pa.us>
+Cc: Tom Lane <tgl@sss.pgh.pa.us>
+Subject: RE: Please help with some advice
+Date: Thu, 16 Nov 2000 14:09:30 -0800
+MIME-Version: 1.0
+X-Mailer: Internet Mail Service (5.5.2650.21)
+Content-Type: text/plain;
+ charset="iso-8859-1"
+Status: ORr
+
+I think the question do we want to make backend multy-threaded
+should be discussed in hackers.
+
+Vadim
+
+> -----Original Message-----
+> From: Myron Scott [mailto:mscott@sacadia.com]
+> Sent: Thursday, November 16, 2000 2:05 PM
+> To: Bruce Momjian
+> Cc: Mikheev, Vadim; Tom Lane
+> Subject: Re: Please help with some advice
+>
+>
+> Bruce Momjian wrote:
+>
+> >I am curious how you isolated each thread. It seems we pretty much
+> >assume all our memory is controlled by a single query in the process.
+>
+>
+>
+> I moved all global variables to a thread global variable
+> which is accessed
+> by the method GetEnv(). Which looks like this
+>
+> Env* GetEnv(void) {
+> Env* env;
+> thr_getspecific(*envkey,(void*)&env);
+> return env;
+> }
+>
+> The Env struct includes the CurrentMemoryContext, TopMemoryContext,
+> PortalHeapMemory for each instance of a connection (one thread per
+> connection). So, for example,
+> EndPortalAllocMode uses GetEnv()->CurrentMemoryContext
+>
+> void
+> EndPortalAllocMode()
+> {
+> PortalHeapMemory context;
+>
+> AssertState(PortalManagerEnabled);
+> AssertState(IsA(GetEnv()->CurrentMemoryContext,
+> PortalHeapMemory));
+>
+> context = (PortalHeapMemory) GetEnv()->CurrentMemoryContext;
+> AssertState(PointerIsValid(context->block)); /* XXX
+> Trap(...) */
+>
+> /* free current mode */
+> AllocSetReset(&HEAPMEMBLOCK(context)->setData);
+> MemoryContextFree((MemoryContext)
+> PortalHeapMemoryGetVariableMemory(context),
+> context->block);
+>
+> /* restore previous mode */
+> context->block = FixedStackPop(&context->stackData);
+> }
+>
+>
+>
+
+From mscott@sacadia.com Thu Nov 16 22:16:38 2000
+Received: from goldengate.kojoworldwide.com. ([216.133.4.130])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id WAA14638
+ for <pgman@candle.pha.pa.us>; Thu, 16 Nov 2000 22:16:36 -0500 (EST)
+Received: from localhost (localhost [127.0.0.1])
+ by goldengate.kojoworldwide.com. (8.9.1b+Sun/8.9.2) with ESMTP id TAA11874;
+ Thu, 16 Nov 2000 19:04:48 -0800 (PST)
+Date: Thu, 16 Nov 2000 19:04:48 -0800 (PST)
+From: Myron Scott <mscott@sacadia.com>
+X-Sender: mscott@goldengate.kojoworldwide.com.
+To: Bruce Momjian <pgman@candle.pha.pa.us>
+cc: "Mikheev, Vadim" <vmikheev@SECTORBASE.COM>, Tom Lane <tgl@sss.pgh.pa.us>
+Subject: Re: Please help with some advice
+In-Reply-To: <200011170156.UAA11438@candle.pha.pa.us>
+Message-ID: <Pine.GSO.4.10.10011161904140.11870-100000@goldengate.kojoworldwide.com.>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Status: ORr
+
+Thanks very much, I will post to hackers.
+
+Myron
+
+
+