Re: Performance under contention

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: "Ivan Voras" <ivoras(at)freebsd(dot)org>, <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Performance under contention
Date: 2010-11-22 15:26:21
Message-ID: 4CEA373D0200002500037CED@gw.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Ivan Voras <ivoras(at)freebsd(dot)org> wrote:
> On 11/22/10 02:47, Kevin Grittner wrote:
>> Ivan Voras wrote:
>>
>>> After 16 clients (which is still good since there are only 12
>>> "real" cores in the system), the performance drops sharply
>>
>> Yet another data point to confirm the importance of connection
>> pooling. :-)
>
> I agree, connection pooling will get rid of the symptom. But not
> the underlying problem. I'm not saying that having 1000s of
> connections to the database is a particularly good design, only
> that there shouldn't be a sharp decline in performance when it
> does happen. Ideally, the performance should remain the same as it
> was at its peek.

Well, I suggested that we add an admission control[1] mechanism,
with at least part of the initial default policy being that there is
a limit on the number of active database transactions. Such a
policy would do what you are suggesting, but the idea was shot down
on the basis that in most of the cases where this would help, people
would be better served by using an external connection pool.

If interested, search the archives for details of the discussion.

-Kevin

[1] http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf
Joseph M. Hellerstein, Michael Stonebraker and James Hamilton. 2007.
Architecture of a Database System. Foundations and Trends(R) in
Databases Vol. 1, No. 2 (2007) 141*259
(see Section 2.4 - Admission Control)

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Ivan Voras 2010-11-22 15:38:28 Re: Performance under contention
Previous Message Kevin Grittner 2010-11-22 15:11:15 Re: Slow SELECT on small table