walreceiver settings Re: Streaming Replication patch for CommitFest 2009-09

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: walreceiver settings Re: Streaming Replication patch for CommitFest 2009-09
Date: 2009-09-19 06:10:39
Message-ID: 3f0b79eb0909182310w738c7ea5ia17b37776a7e927c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Fri, Sep 18, 2009 at 7:34 PM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> This approach is OK if the stand-alone walreceiver is treated steadily
> by the startup process like a child process under postmaster:
>
> * Handling of some interrupts: SIGHUP, SIGTERM?, SIGINT, SIGQUIT...
>   For example, the startup process would need to rethrow walreceiver
>   the interrupt from postmaster.
>
> * Communication with other child processes: stats collector? syslogger?...
>   For example, the log message generated by walreceiver should also
>   be collected by syslogger if requested.

Also we should consider how to give a GUC parameter to the stand-alone
walreceiver. In the initial patch, since walreceiver was a child process of
postmaster, it could easily get any GUC parameter. But it's not so easy
to give a GUC parameter to a stand-alone program.

I think that at least the following parameters should affect walreceiver:

* wal_sync_method
I want walreceiver to use fdatasync instead of fsync for performance
improvement. And other DBA might want to choose another method.

* fsync
I'm not surprised if someone wants to disable fsync in the standby.

* some parameters for logging
I think that the log messages generated by walreceiver should also be
treated as well as the other postgres messages. For example, I'd like
to specify log_line_prefix also for walreceiver.

There are some approaches to give a GUC parameter to walreceiver.
Which is the best?

1) Give a parameter as a command-line argument of the stand-alone
walreceiver. This is a straightforward approach, but wouldn't cover
a reload of parameter.

2) Give a parameter via pipe between the startup process and walreceiver.

3) Change walreceiver to read a configuration file. The problem is that
the command-line argument of postmaster doesn't affect walreceiver.
The combination of 1) and 3) might be required.

4) Change walreceiver back to a child process of postmaster.

Do you have any other better approach?

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2009-09-19 15:42:53 Re: Schedule for 8.5 Development
Previous Message Andrew Dunstan 2009-09-19 05:57:36 Re: [COMMITTERS] pgsql: Easier to translate psql help Instead of requiring translators