On Wed, Sep 12, 2012 at 06:44:37AM -0400, Gurjeet Singh wrote:
> Thinking a bit more about the need for locks, I guess even the shared
> variables whose read/write ops are considered atomic need to be protected
> by locks so that the effects of NUMA architectures can be mitigated.
src/backend/storage/lmgr/README.barrier has nice coverage of such issues.
NUMA does not change the picture. CPU architecture specifications define
ordering constraints for instructions that touch memory. NUMA is a property
of specific system implementations that changes performance characteristics,
but not functional guarantees, of those instructions.