Re: First draft of the PG 15 release notes - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: First draft of the PG 15 release notes
Date
Msg-id Yn592k3WQl0DpPTX@momjian.us
Whole thread Raw
In response to Re: First draft of the PG 15 release notes  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: First draft of the PG 15 release notes
List pgsql-hackers
On Fri, May 13, 2022 at 08:24:53AM +0530, Amit Kapila wrote:
> On Fri, May 13, 2022 at 6:02 AM Euler Taveira <euler@eulerto.com> wrote:
> >
> > On Thu, May 12, 2022, at 11:22 AM, Bruce Momjian wrote:
> >
> > On Thu, May 12, 2022 at 11:12:54AM -0300, Euler Taveira wrote:
> > OB> On Thu, May 12, 2022, at 11:03 AM, Bruce Momjian wrote:
> > >
> > >     I looked at that but thought that everyone would already assume we
> > >     skipped replication of empty transactions, and I didn't see much impact
> > >     for the user, so I didn't include it.
> > >
> > > It certainly has an impact on heavy workloads that replicate tables with few
> > > modifications. It receives a high traffic of 'begin' and 'commit' messages that
> > > the previous Postgres versions have to handle (discard). I would classify it as
> > > a performance improvement for logical replication. Don't have a strong opinion
> > > if it should be mentioned or not.
> >
> > Oh, so your point is that a transaction that only has SELECT would
> > previously send an empty transaction?  I thought this was only for apps
> > that create literal empty transactions, which seem rare.
> >
> > No. It should be a write transaction. If you have a replication setup that
> > publish only table foo (that isn't modified often) and most of your
> > workload does not contain table foo, Postgres sends 'begin' and 'commit'
> > messages to subscriber even if there is no change to replicate.
> >
> 
> It reduces network traffic and improves performance by 3-14% on simple
> tests [1] like the one shown by Euler. I see a value in adding this as
> for the workloads where it hits, it seems more than 99% of network
> traffic [2] is due to these empty messages.

I see the point now --- new item:

    <!--
    Author: Amit Kapila <akapila@postgresql.org>
    2022-03-30 [d5a9d86d8] Skip empty transactions for logical replication.
    -->
    
    <listitem>
    <para>
    Prevent logical replication of empty transactions (Ajin Cherian,
    Hou Zhijie, Euler Taveira)
    </para>
    
    <para>
    Previously, write transactions would send empty transactions to
    subscribers if subscribed tables were not modified.
    </para>
    </listitem>

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Indecision is a decision.  Inaction is an action.  Mark Batterson




pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Comments on Custom RMGRs
Next
From: Robert Haas
Date:
Subject: Re: Should use MERGE use BulkInsertState ?