Re: Synchronous replication - patch status inquiry

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, David Fetter <david(at)fetter(dot)org>, Bruce Momjian <bruce(at)momjian(dot)us>, fazool mein <fazoolmein(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Synchronous replication - patch status inquiry
Date: 2010-09-10 02:52:20
Message-ID: AANLkTi=zg2xVDjorOWhVM3qcPb+KFmonJcW9zSymktq_@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Sep 3, 2010 at 3:42 PM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> Here is the proposed detailed design:
>
> standbys.conf
> =============
> # This is not initialized by initdb, so users need to create it under $PGDATA.
>    * The template is located in the PREFIX/share directory.
>
> # This is read by postmaster at the startup as well as pg_hba.conf is.
>    * In EXEC_BACKEND environement, each walsender must read it at the startup.
>    * This is ignored when max_wal_senders is zero.
>    * FATAL is emitted when standbys.conf doesn't exist even if max_wal_senders
>      is positive.
>
> # SIGHUP makes only postmaser re-read the standbys.conf.
>    * New configuration doesn't affect the existing connections to the standbys,
>      i.e., it's used only for subsequent connections.
>    * XXX: Should the existing connections react to new configuration? What if
>      new standbys.conf doesn't have the standby_name of the existing
> connection?
>
> # The connection from the standby is rejected if its standby_name is not listed
>  in standbys.conf.
>    * Multiple standbys with the same name are allowed.
>
> # The valid values of SYNCHRONOUS field are async, recv, fsync and replay.
>
> standby_name
> ============
> # This is new string-typed parameter in recovery.conf.
>    * XXX: Should standby_name and standby_mode be merged?
>
> # Walreceiver sends this to the master when establishing the connection.

The attached patch implements the above and simple synchronous replication
feature, which doesn't include quorum commit capability. The replication
mode (async, recv, fsync, replay) can be specified on a per-standby basis,
in standbys.conf.

The patch still uses a poll loop in the backend, walsender, startup process
and walreceiver. If a latch feature Heikki proposed will have been committed,
I'll replace that with a latch.

The documentation has not fully updated yet. I'll work on the document until
the deadline of the next CF.

Regards,

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

Attachment Content-Type Size
synchrep_0910.patch application/octet-stream 63.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2010-09-10 02:57:30 Re: Synchronous replication - patch status inquiry
Previous Message Bruce Momjian 2010-09-10 01:12:05 Re: [BUGS] BUG #5305: Postgres service stops when closing Windows session