Re: better atomics - v0.2

Andres Freund <andres@2ndquadrant.com>

From: Andres Freund <andres@2ndquadrant.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter_e@gmx.net>, Robert Haas <robertmhaas@gmail.com>, Peter Geoghegan <pg@heroku.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Ants Aasma <ants@cybertec.at>
Date: 2013-11-19T21:39:19Z
Lists: pgsql-hackers
On 2013-11-19 16:37:32 -0500, Bruce Momjian wrote:
> On Tue, Nov 19, 2013 at 04:34:59PM +0100, Andres Freund wrote:
> > On 2013-11-19 10:30:24 -0500, Tom Lane wrote:
> > > > I don't have an informed opinion about requiring inline support
> > > > (although it would surely be nice).
> > > 
> > > inline is C99, and we've generally resisted requiring C99 features.
> > > Maybe it's time to move that goalpost, and maybe not.
> > 
> > But it's a part of C99 that was very widely implemented before, so even
> > if we don't want to rely on C99 in its entirety, relying on inline
> > support is realistic.
> > 
> > I think, independent from atomics, the readability & maintainability win
> > by relying on inline functions instead of long macros, potentially with
> > multiple eval hazards, or contortions like ILIST_INCLUDE_DEFINITIONS is
> > significant.
> 
> Oh, man, my fastgetattr() macro is going to be simplified.  All my good
> work gets rewritten.  ;-)

That and HeapKeyTest() alone are sufficient reason for this ;)

Greetings,

Andres Freund

-- 
 Andres Freund	                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Commits

  1. Avoid the use of a separate spinlock to protect a LWLock's wait queue.

  2. Improve LWLock scalability.

  3. Reduce the number of semaphores used under --disable-spinlocks.

  4. Alter the configure script to fail immediately if the C compiler does not