Mark Rae <[EMAIL PROTECTED]> writes: > Even with the numa support, which makes sure any memory allocated by > malloc or the stack ends up local to the processor which originally > called it, and then continues to schedule the process on that CPU, > there is still the problem that all table accesses* go through > the shared buffer cache which resides in one location. > [* is this true in all cases?]
Temp tables are handled in backend-local memory, but all normal tables have to be accessed through shared buffers. The implications of not doing that are bad enough that it's hard to believe it could be a win to change. (In short: the hardware may not like syncing across processors, but it can still do it faster than we could hope to do in software.) > it looks like SGI already have a solution in the form of > symmetric data objects. > In particular, the symmetric heap, an area of shared memory > which is replicated across all memory domains with the > coherency being handled in hardware. Hmm, do they support spinlock objects in this memory? If so it could be just the right thing. > So it looks like all that might be needed is to replace the > shmget calls in src/backend/port with the equivalent SGI functions. Send a patch ;-) regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match