From: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
---|---|
To: | Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> |
Cc: | jdnelson(at)dyn(dot)com, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>, PostgreSQL mailing lists <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: Bug in Physical Replication Slots (at least 9.5)? |
Date: | 2017-01-18 03:34:51 |
Message-ID: | CAB7nPqQytF2giE7FD-4oJJpPVwiKJrDQPc24hLNGThX01SbSmA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On Tue, Jan 17, 2017 at 7:36 PM, Kyotaro HORIGUCHI
<horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> wrote:
> I managed to reproduce this. A little tweak as the first patch
> lets the standby to suicide as soon as walreceiver sees a
> contrecord at the beginning of a segment.
Good idea.
> I believe that a continuation record cannot be span over three or
> more *segments* (is it right?), so keeping one spare segment
> would be enough. The attached second patch does this.
I have to admit that I did not think about this problem much yet (I
bookmarked this report weeks ago to be honest as something to look
at), but that does not look right to me. Couldn't a record be spawned
across even more segments? Take a random string longer than 64MB or
event longer for example.
> Other possible measures might be,
>
> - Allowing switching wal source while reading a continuation
> record. Currently ReadRecord assumes that a continuation record
> can be read from single source. But this needs refactoring
> involving xlog.c, xlogreader.c and relatives.
This is scary thinking about back-branches.
> - Delaying recycling a segment until the last partial record on it
> completes. This seems doable in page-wise (coarse resolution)
> but would cost additional reading of past xlog files (page
> header of past pages is required).
Hm, yes. That looks like the least invasive way to go. At least that
looks more correct than the others.
> - Delaying write/flush feedback until the current record is
> completed. walreceiver is not conscious of a WAL record and
> this might break synchronous replication.
Not sure about this one yet.
--
Michael
From | Date | Subject | |
---|---|---|---|
Next Message | Вадим Акбашев | 2017-01-18 07:54:43 | Strange influence of default_statistics_target |
Previous Message | Kevin Grittner | 2017-01-17 21:25:19 | Re: BUG #14503: restore single database |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2017-01-18 03:48:29 | Re: Re: Clarifying "server starting" messaging in pg_ctl start without --wait |
Previous Message | Peter Eisentraut | 2017-01-18 03:25:28 | Re: [WIP]Vertical Clustered Index (columnar store extension) |