Re: better atomics - v0.2
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Andres Freund <andres@2ndquadrant.com>
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-19T22:16:56Z
Lists: pgsql-hackers
On Tue, Nov 19, 2013 at 10:39:19PM +0100, Andres Freund wrote: > 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 ;) Has there been any performance testing on this rewrite to use atomics? If so, can I missed it. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +
Commits
-
Avoid the use of a separate spinlock to protect a LWLock's wait queue.
- 008608b9d510 9.6.0 cited
-
Improve LWLock scalability.
- ab5194e6f617 9.5.0 cited
-
Reduce the number of semaphores used under --disable-spinlocks.
- daa7527afc22 9.4.0 cited
-
Alter the configure script to fail immediately if the C compiler does not
- d15cb38dec01 9.0.0 cited