Re: Process wakeups when idle and power consumption
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Peter Geoghegan <peter@2ndquadrant.com>
Cc: Magnus Hagander <magnus@hagander.net>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
Date: 2011-05-11T10:42:05Z
Lists: pgsql-hackers
On 11.05.2011 13:34, Peter Geoghegan wrote: > On 11 May 2011 09:54, Magnus Hagander<magnus@hagander.net> wrote: > >> If you're doing this Win32 specific, take a look at >> src/backend/port/win32/signal.c for an example. >> >> If you're not doing this win32-specific, I doubt we really want >> threads to be involved... > > Well, that seems to be the traditional wisdom. It seems sensible to me > that each process should look out for postmaster death itself though. > Tom described potential race conditions in looking at ps output...do > we really want to double the number of auxiliary processes in a single > release of Postgres? Uh, no you don't want any new processes on Unix. You want each process to check for postmaster death every once in a while, like they do today. The pipe-trick is to make sure the processes wake up promptly to notice the death when the postmaster dies. You just need to add the postmaster-pipe to the select() calls we already do. I'm not sure if on Windows you can similarly just add to the postmaster-pipe to the WaitForMultipleObjects() calls we already do. Then you won't need new threads on Windows either. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com