Re: Planner performance extremely affected by an hanging transaction (20-30 times)?

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: didier <did447(at)gmail(dot)com>
Cc: Jesper Krogh <jesper(at)krogh(dot)cc>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Kevin Grittner <kgrittn(at)ymail(dot)com>, Bartłomiej Romański <br(at)sentia(dot)pl>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Planner performance extremely affected by an hanging transaction (20-30 times)?
Date: 2013-09-24 23:30:21
Message-ID: CAMkU=1xJjPV-6aQZHn7-RSH3cBzEO6ENxoGj6hxy5XpWkfo6YQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Tue, Sep 24, 2013 at 11:03 AM, didier <did447(at)gmail(dot)com> wrote:

> Hi
>
>
> On Tue, Sep 24, 2013 at 5:01 PM, <jesper(at)krogh(dot)cc> wrote:
>
>>
>> Apparently it is waiting for locks, cant the check be make in a
>> "non-blocking" way, so if it ends up waiting for a lock then it just
>> assumes non-visible and moves onto the next non-blocking?
>>
>
> Not only, it's a reason but you can get the same slow down with only one
> client and a bigger insert.
>
> The issue is that a btree search for one value degenerate to a linear
> search other 1000 or more tuples.
>
> As a matter of fact you get the same slow down after a rollback until
> autovacuum, and if autovacuum can't keep up...
>

Have you experimentally verified the last part? btree indices have some
special kill-tuple code which should remove aborted tuples from the index
the first time they are encountered, without need for a vacuum.

Cheers,

Jeff

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Bartłomiej Romański 2013-09-24 23:43:54 Re: Planner performance extremely affected by an hanging transaction (20-30 times)?
Previous Message Claudio Freire 2013-09-24 21:56:37 Re: Slow plan for MAX/MIN or LIMIT 1?