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

Reply via email to