How does task scheduling work exactly?

I have tasks that have to be executed one after another. My tasks are 
grouped into classes, and all tasks inside a class have to be executed one 
after another. Tasks being in different classes have no affect on each 
other, so tasks in different classes can be executed concurrently.

In every test I set all my tasks to 100/s rate, 100 bucket and max 1 
concurrent tasks. I've added lots of tasks to the queues, and made no other 
load, I was just monitoring the execution rates of the tasks.

If I put all tasks in the same queue (other queues are disabled), I get a 
max of 100 tasks / minute (not 100 per second!!).

If I create a queue for each task and put tasks to the queue associated with 
its class, the throughput decreases drastically!! I created 32 queues for 32 
classes, and made a test using only 2 queues (2 classes of tasks). The 
performance was: 3 tasks per minute in each queue, which is 6 tasks per 
minute altogether!!

My question are:
-Is using more queues decreases overall performance? Why does using more 
queues decrease overall execution rate instead of increasing it?
-The experienced execution rate is not even close to the maximum rate 
(100/s). Why is that?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to