Re: pgsql: Have pg_receivexlog always send an invalid log position in statu

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Have pg_receivexlog always send an invalid log position in statu
Date: 2012-02-10 03:34:44
Message-ID: CAHGQGwHyL4_m=aReh+bbmx7cbhkmXx_q74JXj5KYZjAnKL9=_w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Fri, Feb 10, 2012 at 8:14 AM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> On Thu, Feb 9, 2012 at 17:35, Heikki Linnakangas
> <heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
>> On 09.02.2012 15:14, Magnus Hagander wrote:
>>>
>>> Have pg_receivexlog always send an invalid log position in status messages
>>>
>>> This prevents pg_basebackup and pg_receivexlog from becoming a synchronous
>>> standby in case 'write' is used for synchronous_commit.
>>
>>
>> It's not completely crazy to use pg_receivexlog as a synchronous standby. It
>> provides the zero-loss property like a real standby does, ie. if the master
>> dies after sending the WAL to pg_receivexlog, that transaction is safe in
>> the archive.
>
> Yes, but as I stated in the email in the thread that the patch was
> posted in, I think this should not be the default behaviour, but it
> should be available as a commandline option, or something along that
> line.

Even if we make that the default behavior, pg_receivexlog doesn't work as
a sync standby unless synchronous_standby_names is set to "pg_receivexlog"
or "*". There is little risk that we make that the default, I think... No?

Anyway, to consider pg_receivexlog as a sync standby, we need to change it
so that its status report includes the valid write and flush
positions, and so that
it replies as soon as it writes or flushes the received WAL, like real
sync standby
does. Otherwise, the master has to wait for the status report interval (which is
specified in -s or --statusint option of pg_receivexlog).

The proposed change would increase the frequency for pg_receivexlog to send
back the report very much. Which might be a problem. For people who want to
avoid such frequent reports, we might need to introduce the option
which specifies
whether frequent report is allowed or not.

Regards,

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

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2012-02-10 07:33:07 pgsql: Add ORDER BY to a query to prevent occasional regression test fa
Previous Message Magnus Hagander 2012-02-09 23:14:41 Re: pgsql: Have pg_receivexlog always send an invalid log position in statu