[Bizgres-general] [ENG] Re: Statement Queuing take II - Resource Scheduling (Running with cost and cursors)

Mark Kirkwood mkirkwood at greenplum.com
Wed Aug 2 06:39:25 UTC 2006


Luke Lonergan wrote:
> Mark, 
>
>   
>> -----Original Message-----
>> From: eng-bounces at intranet.greenplum.com 
>> [mailto:eng-bounces at intranet.greenplum.com] On Behalf Of Mark Kirkwood
>> Sent: Tuesday, August 01, 2006 11:06 PM
>> To: bizgres-general at pgfoundry.org
>> Cc: eng at intranet.greenplum.com
>> Subject: [ENG] Re: [Bizgres-general] Statement Queuing take 
>> II - Resource Scheduling (Running with cost and cursors)
>>
>> An update on progress again:
>>
>> The machinery to  track  limit types other than merely active 
>> count was running for the first time today, so cost and count 
>> limit types are both working! (and work_mem could be made to 
>> work if I spent time on figuring out how to count the 
>> possible allocations in a plan).
>>     
>
> This is a big deal if I read this correctly - can we assign statements
> to queues post-planning based on their cost?
>
>   

Not at the moment, how it works is that a user (i.e. role) is in a 
resource queue, so everything they do counts against *that* queue. 
However (not implemented yet, as there is some thinking to do here), SET 
ROLE to a role with a *different* queue could kinda do that, in a very 
prescribed manner.

To have statements assigned to queues based on some limit parameter (say 
cost) would be pretty cool - err - we had not really though of doing it 
that way tho.... To do something like that the resource queues 
themselves would need a lower threshold or something so that for a given 
statement with (say) cost x, we can decide which queue to put it in. But 
we would also need some way to decide *which* possible limit type is the 
decider for a given statement (i.e is it cost, count, work_mem etc) - 
maybe that would be set per role? (role has a limit type as opposed to 
the current role has a queue).

I guess this is a different way of managing the system load, one way being:

- put users into queues based on the their expected workload

Whereas what we have been describing is:

- put statements into queues based on their estimated workload

It is certainly interesting...(scratches had), not sure we can do both...


Cheers

Mark


More information about the Bizgres-general mailing list