Re: Faster inserts with mostly-monotonically increasing values

From: Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>
To: Simon Riggs <simon(dot)riggs(at)2ndquadrant(dot)com>
Cc: Claudio Freire <klaussfreire(at)gmail(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Faster inserts with mostly-monotonically increasing values
Date: 2018-03-14 13:33:58
Message-ID: CABOikdNSw-f0=RLm_oR0Zqi31K-ko+WOMjcku60GPu752X3-hQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Mar 14, 2018 at 4:53 PM, Simon Riggs <simon(dot)riggs(at)2ndquadrant(dot)com>
wrote:

> On 14 March 2018 at 04:36, Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>
> wrote:
> > I wonder if the shortened code path actually leads to
> > heavier contention for EXCLUSIVE lock on the rightmost page, which in
> turn
> > causes the slowdown. But that's just a theory. Any ideas how to prove or
> > disprove that theory or any other pointers?
>
> Certainly: dropping performance with higher sessions means increased
> contention is responsible. Your guess is likely correct.
>
> Suggest making the patch attempt a ConditionalLock on the target
> block, so if its contended we try from top of index. So basically only
> attempt the optimization if uncontended. This makes sense because in
> many cases if the block is locked it is filling up and the RHS block
> is more likely to change anyway.

Hmm. I can try that. It's quite puzzling though that slowing down things
actually make them better.

I can also try to reduce the amount of time EX lock is held by doing some
checks with a SHARE lock and then trade it for EX lock if we conclude that
fast path can be taken. We can do page lsn check to confirm nothing changed
when the lock was traded. Will check both approaches.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Steele 2018-03-14 13:38:10 Re: PATCH: Unlogged tables re-initialization tests
Previous Message Ildus Kurbangaliev 2018-03-14 13:31:23 Re: [HACKERS] Custom compression methods