Re: Bug in Physical Replication Slots (at least 9.5)?

From: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
To: michael(dot)paquier(at)gmail(dot)com
Cc: jdnelson(at)dyn(dot)com, pgsql-hackers(at)postgresql(dot)org, pgsql-bugs(at)postgresql(dot)org
Subject: Re: Bug in Physical Replication Slots (at least 9.5)?
Date: 2017-01-20 02:07:29
Message-ID: 20170120.110729.107284864.horiguchi.kyotaro@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

Hello,

At Thu, 19 Jan 2017 18:37:31 +0900 (Tokyo Standard Time), Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> wrote in <20170119(dot)183731(dot)223893446(dot)horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
> > > - 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.
>
> The attached patch does that. Usually it reads page headers only
> on segment boundaries, but once continuation record found (or
> failed to read the next page header, that is, the first record on
> the first page in the next segment has not been replicated), it
> becomes to happen on every page boundary until non-continuation
> page comes.
>
> I leave a debug info (at LOG level) in the attached file shown on
> every state change of keep pointer. At least for pgbench, the
> cost seems ignorable.

I revised it. It became neater and less invasive.

- Removed added keep from struct WalSnd. It is never referrenced
from other processes. It is static variable now.

- Restore keepPtr from replication slot on starting.

- Moved the main part to more appropriate position.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

Attachment Content-Type Size
retard_keeplogseg_v2.patch text/x-patch 6.4 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message gerdan 2017-01-20 11:05:19 BUG #14506: The execution plan with Inner Join is different when using clause table.column is not null
Previous Message Stephen Frost 2017-01-20 01:33:04 Re: pg_dump 9.6 doesn't honour pg_extension_config_dump for sequences

Browse pgsql-hackers by date

  From Date Subject
Next Message Haribabu Kommi 2017-01-20 02:20:18 Re: [WIP]Vertical Clustered Index (columnar store extension)
Previous Message Andres Freund 2017-01-20 02:05:13 Failure on sittella