[Bizgres-general] Another use case
Luke Lonergan
LLonergan at greenplum.com
Wed Aug 9 05:54:50 UTC 2006
Mark,
> > - Queues should have a default nice value, from 0 to 19
> >
> >
>
> As in nice(1)? - so we're gonna set the backend's process
> priority (this is the bit where we have to be careful about
> priority inversion).
That's the idea, not sure what the problem of priority inversion is?
> Aside, with his cross platform hat on - is there an
> equivalent system call on win32?
Must be - not sure what it is. Since WIN is a preemptive multitasking
system with priority scheduling, there is definitely a call to implement
priority somewhere...
> > We talked through a number of issues that will need to be
> tackled in
> > the next phases including:
> > - planned queries hold locks, then are queued, which
> inappropriately
> > couples queues together
> >
>
> Not sure I get what this one is saying...
When a statement is planned, thereby generating an execution plan, the
required locks for the plan are taken before the plan is returned. At
that point, the statement would be queued and will wait for it's turn to
execute.
If two statements reside in two different queues, their locks may
conflict, which will cause an interaction between the two statements.
This is an unwanted and uncontrollable coupling of the two queues.
An approach to prevent this would be to enqueue statements with similar
lock types together as a class. This would allow for reordering within
the queue class to pre-empt deadlocks and better estimate fair share of
processing.
- Luke
More information about the Bizgres-general
mailing list