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

Reply via email to