1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

MCOL-5044 Initial version of a fair thread pool

PP now uses PriorityThreadPool that arbitrary picks another jobs pack
    to run. This scheduling discipline tend to run portions of a single query
    forcing other simultaneous queries to wait. In result parallel queries
    timings variance is high. The FairThreadPool picks the job with the smallest
    amount of work done so far(see the code for details)
This commit is contained in:
Roman Nozdrin
2022-04-17 17:32:33 +00:00
parent 652c9299b7
commit c92dc08264
6 changed files with 655 additions and 7 deletions

View File

@ -51,8 +51,6 @@ class PriorityThreadPool
virtual int operator()() = 0;
};
// typedef boost::function0<int> Functor;
struct Job
{
Job() : weight(1), priority(0), id(0)