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

Re: Using Threads?

From: "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>
To: Myron Scott <mscott(at)sacadia(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Using Threads?
Date: 2000-12-04 17:33:07
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers
Myron - 
Putting aside the fork/threads discussion for a moment (the reasons,
both historical and other, such as inter-backend protection, are well
covered in the archives), the work you did sounds like an interesting
experiment in code redesign. Would you be willing to release the hacked
code somewhere for others to learn from? Hacking flex to generate
thread-safe code is of itself interesting, and the question about PG and
threads comes up so often, that an example of why it's not a simple task
would be useful.


On Mon, Dec 04, 2000 at 12:20:20AM -0800, Myron Scott wrote:
> I maybe wrong but I think that PGSQL is not threaded mostly due to
> historical reasons.  It looks to me like the source has developed over
> time where much of the source is not reentrant with many global variables
> throughout.  In addition, the parser is generated by flex which
> can be made to generate reentrant code but is still not thread safe b/c
> global variables are used.
> That being said, I experimented with the 7.0.2 source and came up with a
> multithreaded backend for PGSQL which uses Solaris Threads. It seems to
> work, but I drifted very far from the original source.  I
> had to hack flex to generate threadsafe code as well.  I use it as a
> linked library with my own fe<->be protocol. This ended up being much much
> more than I bargained for and looking back would probably not have tried
> had I known any better.
> Myron Scott

In response to


pgsql-hackers by date

Next:From: Mikheev, VadimDate: 2000-12-04 17:51:33
Subject: RE: Wrong FOR UPDATE lock type
Previous:From: Peter EisentrautDate: 2000-12-04 17:31:17
Subject: Re: compiling pg 7.0.3 on sco 5.0.5

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