----- Original Message ----- From: "Robert E. Bruccoleri" <[EMAIL PROTECTED]> To: "Luis Alberto Amigo Navarro" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Monday, July 29, 2002 2:48 AM Subject: Re: [HACKERS] Question about LWLockAcquire's use of semaphores instead of spinlocks
> Dear Luis, > I would be very interested. Replacing the IPC shared memory > with an arena make a lot of sense. --Bob > On old PowerChallenge postgres works really fine, but in new NUMA architectures postgres works so badly, as we have known, forked backends don't allow IRIX to manage memory as it would be desired. Leaving First Touch placement algorithm means that almost every useful data is placed on the first node the process is run. Trying to use more than one node with this schema results in a false sharing, secondary cache hits ratio drops below 85% due to latency on a second node is about 6 times bigger than in the first node even worse if you have more than 4 nodes. All of this causes that you're almost only working with a node (4 cpus in origin 3000). Implementing Round-Robin placement algorithms causes that memory pages are placed each one in one node, this causes that all nodes have the same chance to work with some pages locally and some pages remotely. The more the number of nodes, the more advantage you can take with round-robin. You can enable round-robin recompiling postgres, setting before the enviroment variable _DSM_ROUND_ROBIN=TRUE it works fine with fork(), and it is not necessary using sprocs. Changing IPC shared memory for a shared arena could improve performance because it's the native shared segment on IRIX. it's something we're willing to do, but by now it is only a project. Hope it helps ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org