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

From Jeff Janes
Subject Re: Planner performance extremely affected by an hanging transaction (20-30 times)?
Date
Msg-id CAMkU=1xJjPV-6aQZHn7-RSH3cBzEO6ENxoGj6hxy5XpWkfo6YQ@mail.gmail.com
Whole thread Raw
In response to Re: Planner performance extremely affected by an hanging transaction (20-30 times)?  (didier <did447@gmail.com>)
Responses Re: Planner performance extremely affected by an hanging transaction (20-30 times)?  (Bartłomiej Romański <br@sentia.pl>)
Re: Planner performance extremely affected by an hanging transaction (20-30 times)?  (didier <did447@gmail.com>)
List pgsql-performance
On Tue, Sep 24, 2013 at 11:03 AM, didier <did447@gmail.com> wrote:
Hi


On Tue, Sep 24, 2013 at 5:01 PM, <jesper@krogh.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 

pgsql-performance by date:

Previous
From: Claudio Freire
Date:
Subject: Re: Slow plan for MAX/MIN or LIMIT 1?
Next
From: Bartłomiej Romański
Date:
Subject: Re: Planner performance extremely affected by an hanging transaction (20-30 times)?