Re: Priorities for users or queries?

From: Ron Mayer <rm_pg(at)cheapcomplexdevices(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Subject: Re: Priorities for users or queries?
Date: 2007-02-20 23:19:06
Message-ID: 45DB81EA.9080401@cheapcomplexdevices.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-general pgsql-hackers

Bruce Momjian wrote:
> Hard to argue with that.

Is it a strong enough argument to add a TODO?

I'm thinking some sort of TODO might be called for.

Perhaps two TODOs?
* Use the OS's priority features to prioritize
backends (and document that it might work
better with OS's that support priority inheritance).
* Investigate if postgresql could develop an
additional priority mechanism instead of using
the OS's.

> Ron Mayer wrote:
>> Magnus Hagander wrote: ...
>>> quite likely to suffer from priority inversion
>> ... CMU paper... tested PostgreSQL (and DB2) on TPC-C
>> and TPC-W ...found that...I/O scheduling through
>> CPU priorities is a big win for postgresql.
>>
>> http://www.cs.cmu.edu/~bianca/icde04.pdf

Setting priorities seems a rather common request,
supposedly coming up every couple months [5].

The paper referenced [1] suggests that even with
naive schedulers, use of CPU priorities is very
effective for CPU and I/O intensive PostgreSQL
workloads.

If someone eventually finds a workload that does suffer
worse performance due to priority inversion,
(a) they could switch to an OS and scheduler
that supports priority inheritance;
(b) it'd be an interesting case for a paper
rebutting the CMU one; and
(c) they don't have to use priorities.

If a user does find he wants priority inheritance it
seems Linux[1], BSD[2], some flavors of Windows[3],
and Solaris[4] all seem to be options; even though
I've only seen PostgreSQL specifically tested for
priority inversion problems with Linux (which did
not find problems but found additional benefit of
using priority inheritance).

[1] Linux with Priority inheritance showing benefits for
PostgreSQL
http://www.cs.cmu.edu/~bianca/icde04.pdf
[2] BSD priority inheritance work mentioned:
http://www.freebsd.org/news/status/report-july-2004-dec-2004.html
[3] Windows priority inheritance stuff:
http://msdn2.microsoft.com/en-us/library/aa915356.aspx
[4] Solaris priority inheritance stuff
http://safari5.bvdep.com/0131482092/ch17lev1sec7
http://www.itworld.com/AppDev/1170/swol-1218-insidesolaris/
[5] Tom suggests that priorities are a often requested feature.
http://svr5.postgresql.org/pgsql-performance/2006-05/msg00463.php

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message sandhya 2007-02-22 05:10:51 unsubscribe
Previous Message Tom Lane 2007-02-20 18:39:33 Re: Max files per process..

Browse pgsql-general by date

  From Date Subject
Next Message Stephan Szabo 2007-02-20 23:25:20 Re: invalid input syntax for integer: "NULL"
Previous Message Karl O. Pinc 2007-02-20 23:14:34 Re: invalid input syntax for integer: "NULL"

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2007-02-20 23:39:12 Re: PrivateRefCount (for 8.3)
Previous Message Bruce Momjian 2007-02-20 22:47:03 Re: [pgsql-patches] O_DIRECT support for Windows