Re: BUG #14635: Query is executed slower on hot standby slave database then on master database

From: Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Vitaliy Gomenyuk <vgomenyuk(at)callfire(dot)com>, "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>, Aleksandr Saraseka <asaraseka(at)callfire(dot)com>
Subject: Re: BUG #14635: Query is executed slower on hot standby slave database then on master database
Date: 2017-05-04 00:26:17
Message-ID: CAJrrPGfi6mxwZ5hBE-+9qGf8NC=n6ta1MwXJxvv2o=nqzD3TMA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thu, May 4, 2017 at 12:05 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Vitaliy Gomenyuk <vgomenyuk(at)callfire(dot)com> writes:
> > [ same query slower on slave ]
>
> Hmm, the discrepancy is evidently in the larger bitmap index scan:
>
> > There is an execution plan from master:
> > -> Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"
> (cost=0.00..3556.90 rows=80249 width=0) (actual time=139.761..139.761
> rows=9158 loops=1)
> > Index Cond: ((om."Status" = 0) AND
> (om."Deleted" = false))
> > Buffers: shared hit=70252
>
> > There is an execution plan from slave:
> > -> Bitmap Index Scan on "OutgoingMessages_Status_StampToSend_Deleted"
> (cost=0.00..3556.90 rows=80249 width=0) (actual time=1470.853..1470.853
> rows=8671249 loops=1)
> > Index Cond: ((om."Status" = 0) AND
> (om."Deleted" = false))
> > Buffers: shared hit=70252
>
> The contents of the indexes should be the same, so why is the slave
> returning so many more rows? It has to be because the index entries are
> not marked as killed (known-dead-to-everybody), or not being treated as
> killed, in the slave. I vaguely recall that there's a difference in the
> rules for index entry visibility on slaves, but it's not clear to me why
> that should be.
>

The index cleanup by the full vacuum and vacuum one page are WAL logged,
so when they gets replayed on the slave, both the indexes must be same.

May be the WAL didn't replayed on the slave because of conflict transaction?
Or Any other scenarios it may be different?

Hi Vitaliy,

Is it possible for you check the status of the replication? and also is it
possible
for you to create another fresh slave and check whether the issue is
happening
there also?

Regards,
Hari Babu
Fujitsu Australia

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Haribabu Kommi 2017-05-04 00:30:44 Re: Re: [BUGS] BUG #14634: On Windows pg_basebackup should write tar to stdout in binary mode
Previous Message Tom Lane 2017-05-03 23:11:34 Re: [pgsql-www] Bug 14592