diff options
author | Andres Freund <andres@anarazel.de> | 2016-04-10 20:12:32 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2016-04-10 20:12:32 -0700 |
commit | 008608b9d51061b1f598c197477b3dc7be9c4a64 (patch) | |
tree | a2284092fb36b8e7fd9d8f412fc6da4ee4c8fad2 /src/backend/executor/nodeRecursiveunion.c | |
parent | 48354581a49c30f5757c203415aa8412d85b0f70 (diff) | |
download | postgresql-008608b9d51061b1f598c197477b3dc7be9c4a64.tar.gz postgresql-008608b9d51061b1f598c197477b3dc7be9c4a64.zip |
Avoid the use of a separate spinlock to protect a LWLock's wait queue.
Previously we used a spinlock, in adition to the atomically manipulated
->state field, to protect the wait queue. But it's pretty simple to
instead perform the locking using a flag in state.
Due to 6150a1b0 BufferDescs, on platforms (like PPC) with > 1 byte
spinlocks, increased their size above 64byte. As 64 bytes are the size
we pad allocated BufferDescs to, this can increase false sharing;
causing performance problems in turn. Together with the previous commit
this reduces the size to <= 64 bytes on all common platforms.
Author: Andres Freund
Discussion: CAA4eK1+ZeB8PMwwktf+3bRS0Pt4Ux6Rs6Aom0uip8c6shJWmyg@mail.gmail.com
20160327121858.zrmrjegmji2ymnvr@alap3.anarazel.de
Diffstat (limited to 'src/backend/executor/nodeRecursiveunion.c')
0 files changed, 0 insertions, 0 deletions