Re: query locks up when run concurrently

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: azhwkd <azhwkd(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: query locks up when run concurrently
Date: 2016-11-23 23:28:26
Message-ID: 55767b92-fa40-8cee-7edf-96a4a91e8a42@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 11/23/2016 01:52 PM, azhwkd wrote:
> Greetings!
>
> The parallel calls should not be working on the same row. Each query
> services a different group ID on it's own and there is no overlap.

Except the INSERT query in the trigger function is working on dates not
group ids.

>
> Kind regards,
> Sebastian
>
>
> Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>> schrieb am Mi.,
> 23. Nov. 2016 um 17:47 Uhr:
>
> azhwkd(at)gmail(dot)com <mailto:azhwkd(at)gmail(dot)com> writes:
> > I have a query which if run alone usually completes in about 300ms.
> > When run in my application this query constantly locks up and bogs
> > down all connections of the connection pool (In the application this
> > query is run up to 10 times in parallel with different parameters).
> > What's really weird is that I can re-run one of the hung queries from
> > the command line while it's hung and it will complete as expected
> > while the hung queries continue to use 100% CPU time.
>
> Judging from the EXPLAIN timing, most of the work is in the trigger,
> which leads me to wonder if the parallel calls are likely to be fighting
> over inserting/updating the same row in the group_history partition
> tables. Or are you certain that they should be hitting different rows?
>
> regards, tom lane
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message azhwkd 2016-11-24 06:26:26 Re: query locks up when run concurrently
Previous Message Adrian Klaver 2016-11-23 23:26:43 Re: query locks up when run concurrently