Re: Excessive PostmasterIsAlive calls slow down WAL redo
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-04-05T18:39:27Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > ISTM the better approach would be to try to reduce the cost of > PostmasterIsAlive() on common platforms - it should be nearly free if > done right. +1 if it's doable. > One way to achieve that would e.g. to stop ignoring SIGPIPE and instead > check for postmaster death inside the handler, without reacting to > it. Then the the actual PostmasterIsAlive() checks are just a check of a > single sig_atomic_t. AFAIR, we do not get SIGPIPE on the postmaster pipe, because nobody ever writes to it. So this sketch seems off to me, even assuming that not-ignoring SIGPIPE causes no problems elsewhere. While it's not POSIX, at least some platforms are capable of delivering a separate signal on parent process death. Perhaps using that where available would be enough of an answer. regards, tom lane
Commits
-
Poll postmaster less frequently in recovery.
- 57dcc2ef3320 14.0 landed
-
Use signals for postmaster death on FreeBSD.
- f98b8476cd4a 12.0 landed
-
Use signals for postmaster death on Linux.
- 9f09529952ac 12.0 landed
-
Introduce a pipe between postmaster and each backend, which can be used to
- 89fd72cbf26f 9.2.0 cited