Re: a heavy duty operation on an "unused" table kills my
server
From:
Greg Smith <greg(at)2ndquadrant(dot)com>
To:
Eduardo Piombino <drakorg(at)gmail(dot)com>
Cc:
Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,
Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>,
pgsql-performance(at)postgresql(dot)org
Subject:
Re: a heavy duty operation on an "unused" table kills my
server
Eduardo Piombino wrote:
> In the case where priority inversion is not to be used, I would
> however still greatly benefit from the slow jobs/fast jobs mechanism,
> just being extra-careful that the slow jobs, obviously, did not
> acquire any locks that a fast job would ever require. This alone would
> be, still, a *huge* feature if it was ever to be introduced,
> reinforcing the real-time awareness/requirements, that many
> applications look for today.
In this context, "priority inversion" is not a generic term related to
running things with lower priorities. It means something very
specific: that you're allowing low-priority jobs to acquire locks on
resources needed by high-priority ones, and therefore blocking the
high-priority ones from running effectively. Unfortunately, much like
deadlock, it's impossible to avoid the problem in a generic way just by
being careful. It's one of the harder issues that needs to be
considered in order to make progress on implementing this feature one day.
--
Greg Smith 2ndQuadrant Baltimore, MD
PostgreSQL Training, Services and Support
greg(at)2ndQuadrant(dot)com www.2ndQuadrant.com