For completeness, re-implement meta.schedulingPriority
[?]
Aug 12, 2015, 10:05 AM
UPNGFCXGAFSLL2XTBFDIUX2FBPHUCBNRCDRGRSPXCDNTMF3DP44QCDependencies
- [2]
IK2UBDAURevive jobset scheduling - [3]
ZK76B5ZZLoad the queue in order of global priority - [4]
MHVIT4JYSplit hydra-queue-runner.cc more - [5]
HJOEIMLRRefactor - [6]
4I2HF4L3Unindent - [7]
WE5Q2NVIAllow build to be bumped to the front of the queue via the web interface - [8]
46ADBTMQStart steps in order of ascending build ID - [9]
T5BIOVJEAdd support for tracking custom metrics
Change contents
- edit in src/hydra-queue-runner/dispatcher.cc at line 120
/* Sort the runnable steps by priority. Priority is establisedas follows (in order of precedence):- The global priority of the builds that depend on thestep. This allows admins to bump a build to the front ofthe queue.- The lowest used scheduling share of the jobsets dependingon the step. - replacement in src/hydra-queue-runner/dispatcher.cc at line 131
/* Sort the runnable steps by priority. FIXME: O(n lg n);obviously, it would be better to keep a runnable queue sortedby priority. */- The local priority of the build, as set via the build'smeta.schedulingPriority field. Note that this is notquite correct: the local priority should only be used toestablish priority between builds in the same jobset, buthere it's used between steps in different jobsets if theyhappen to have the same lowest used scheduling share. Butthat's not every likely.- The lowest ID of the builds depending on the step;i.e. older builds take priority over new ones.FIXME: O(n lg n); obviously, it would be better to keep arunnable queue sorted by priority. */ - edit in src/hydra-queue-runner/dispatcher.cc at line 189
a_->highestLocalPriority != b_->highestLocalPriority ? a_->highestLocalPriority > b_->highestLocalPriority : - replacement in src/hydra-queue-runner/queue-monitor.cc at line 70
("select id, project, jobset, job, drvPath, maxsilent, timeout, timestamp, globalPriority from Builds "("select id, project, jobset, job, drvPath, maxsilent, timeout, timestamp, globalPriority, priority from Builds " - edit in src/hydra-queue-runner/queue-monitor.cc at line 91
build->localPriority = row["priority"].as<int>(); - edit in src/hydra-queue-runner/queue-monitor.cc at line 263
step_->highestLocalPriority = std::max(step_->highestLocalPriority, localPriority); - replacement in src/hydra-queue-runner/state.hh at line 108
int globalPriority;int localPriority, globalPriority; - edit in src/hydra-queue-runner/state.hh at line 166
/* The highest local priority of any build depending on thisstep. */int highestLocalPriority{0};