From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
---|---|
To: | Benjamin Arai <benjamin(at)araisoft(dot)com> |
Cc: | Magnus Hagander <magnus(at)hagander(dot)net>, Adam Rich <adam(dot)r(at)sbcglobal(dot)net>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Priorities for users or queries? |
Date: | 2007-02-16 21:44:20 |
Message-ID: | 45D625B4.5040008@Yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin pgsql-general pgsql-hackers |
On 2/11/2007 1:02 PM, Benjamin Arai wrote:
> Hi Magnus,
>
> Think this can be avoided as long the the queries executed on the lower
> priority process never lock anything important. In my case, I would
> alway be doing inserts with the lower priority process, so inversion
> should never occur. On the other hand if some lock occur somewhere else
> specific to Postgres then there may be an issue. Are there any other
> tables locked by the the Postgres process other than those locks
> explicitly set by the query?
If you assume that the logical row level locks, placed by such low
priority "road-block", would be the important thing to watch out for,
you are quite wrong. Although Postgres appears to avoid blocking readers
by concurrent updates using MVCC, this isn't entirely true. The moment
one updating backend needs to scribble around in any heap or index
block, it needs an exclusive lock on that block until it is done with
that. It will not hold that block level lock until the end of its
transaction, but it needs to hold it until the block is in a consistent
state again. That means that the lower the priority of those updating
processes, the more exclusively locked shared buffers you will have in
the system, with the locking processes currently not getting the CPU
because of their low priority.
Jan
>
> Benjamin
>
> Magnus Hagander wrote:
>> Most likely, you do not want to do this. You *can* do it, but you are
>> quite likely to suffer from priority inversion
>> (http://en.wikipedia.org/wiki/Priority_inversion)
>>
>> //Magnus
>>
>>
>> Adam Rich wrote:
>>
>>> There is a function pg_backend_pid() that will return the PID for
>>> the current session. You could call this from your updating app
>>> to get a pid to feed to the NICE command.
>>>
>>>
>>> -----Original Message-----
>>> From: pgsql-general-owner(at)postgresql(dot)org
>>> [mailto:pgsql-general-owner(at)postgresql(dot)org] On Behalf Of Benjamin Arai
>>> Sent: Saturday, February 10, 2007 6:56 PM
>>> To: pgsql-general(at)postgresql(dot)org; pgsql-admin(at)postgresql(dot)org
>>> Subject: [GENERAL] Priorities for users or queries?
>>>
>>>
>>> Hi,
>>>
>>> Is there a way to give priorities to queries or users? Something
>>> similar to NICE in Linux. My goal is to give the updating (backend)
>>> application a very low priority and give the web application a high
>>> priority to avoid disturbing the user experience.
>>>
>>> Thanks in advance!
>>>
>>> Benjamin
>>>
>>>
>>> ---------------------------(end of broadcast)---------------------------
>>> TIP 4: Have you searched our list archives?
>>>
>>> http://archives.postgresql.org/
>>>
>>>
>>> ---------------------------(end of broadcast)---------------------------
>>> TIP 3: Have you checked our extensive FAQ?
>>>
>>> http://www.postgresql.org/docs/faq
>>>
>>
>>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #
From | Date | Subject | |
---|---|---|---|
Next Message | Benjamin Arai | 2007-02-16 21:56:08 | Re: Priorities for users or queries? |
Previous Message | Bruce Momjian | 2007-02-16 21:35:40 | Re: rename a cluster |
From | Date | Subject | |
---|---|---|---|
Next Message | Benjamin Arai | 2007-02-16 21:56:08 | Re: Priorities for users or queries? |
Previous Message | Bruce Momjian | 2007-02-16 21:43:36 | Re: Small request re error message |
From | Date | Subject | |
---|---|---|---|
Next Message | Benjamin Arai | 2007-02-16 21:56:08 | Re: Priorities for users or queries? |
Previous Message | Matthew T. O'Connor | 2007-02-16 21:43:34 | Re: autovacuum next steps |