This patch depends on the not-yet-submitted predictive scheduler implementation. Please make sure the code is up-to-date with that patch before applying this one.
This implementation introduces an anti-starvation mechanism for the predictive job queue in Ganeti. It is based on the predictive queue design document. With the current parameters, 30 seconds count as a 'tick' in the anti-starvation system, and 30 ticks (read: 15minutes) will drop a job to the lowest static lock prediction. This means after 15 minutes a job will be guaranteed to be among the first members of the queue to be run next. Federico Morg Pareschi (2): First implementation of the predictive scheduler Implement starvation-prevention mechanism in queue src/Ganeti/Config.hs | 1 + src/Ganeti/Constants.hs | 38 ++ src/Ganeti/JQScheduler.hs | 35 +- src/Ganeti/JQueue.hs | 1 + src/Ganeti/JQueue/LockDecls.hs | 601 ++++++++++++++++++++++++ src/Ganeti/Objects.hs | 1 - test/hs/Test/Ganeti/JQueue/LockDecls.hs | 150 ++++++ test/hs/Test/Ganeti/Objects.hs | 31 +- test/hs/Test/Ganeti/OpCodes.hs | 777 ++++++++++++++++---------------- test/hs/Test/Ganeti/TestCommon.hs | 13 +- test/hs/htest.hs | 2 + 11 files changed, 1252 insertions(+), 398 deletions(-) create mode 100644 src/Ganeti/JQueue/LockDecls.hs create mode 100644 test/hs/Test/Ganeti/JQueue/LockDecls.hs -- 2.8.0.rc3.226.g39d4020
