From: | Magnus Hagander <magnus(at)hagander(dot)net> |
---|---|
To: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
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-15 09:44:21 |
Message-ID: | CABUevEzy7JYNun6_u0s9_ZEuw+7xbiX9mrWn8cKxzhx81N5GrQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
On Fri, Feb 10, 2012 at 04:34, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> 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?
We discussed this at some previous time, and since it's fairly common
for people to use "*" - in fact, I believe it's what most people do.
Which would lead to unintended consequences. I guess we could document
that very clearly in the docs of that parameter...
> 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).
Yes, that's what I suggested be controled by a separate parameter.
Having it sync standby and only send status reports every now and then
seems like a really bad idea.
> 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.
Exactly my point...
--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2012-02-15 12:10:59 | pgsql: Fix pg_test_fsync Win32 problems reported by the build farm; ad |
Previous Message | Bruce Momjian | 2012-02-15 02:53:28 | pgsql: Try to get pg_test_thread to compile on Windows by using a sleep |