Rather than a single queue, I would like to experiment with a set of minheaps. We would break each set of thread workers into "sub-pools" IE:
pool A: thread 0,1,2,3,4,5,6,7
pool B: thread 8 .... 15
When we have a "low priority" job it would be placed at the bottom of the heap - io events would be "high" so they would come off first. Think low-priority being background tasks etc.
The reason to seperate the heaps like this is to try and minimise lock contention on the heaps, but to prevent starvation of jobs in each pool.
Metadata Update from @firstyear:
- Issue assigned to firstyear
Metadata Update from @mreynolds:
- Custom field component adjusted to None
- Custom field origin adjusted to None
- Custom field reviewstatus adjusted to None
- Custom field type adjusted to None
- Custom field version adjusted to None
- Issue set to the milestone: 1.4 backlog
to comment on this ticket.