hudson.model.queue
Class MappingWorksheet
java.lang.Object
hudson.model.queue.MappingWorksheet
public class MappingWorksheet
- extends Object
Defines a mapping problem for answering "where do we execute this task?"
The heart of the placement problem is a mapping problem. We are given a Queue.Task
,
(which in the general case consists of a set of SubTask
s), and we are also given a number
of idle Executor
s, and our goal is to find a mapping from the former to the latter,
which determines where each SubTask
gets executed.
This mapping is done under two constraints:
-
"Same node" constraint. Some of the subtasks need to be co-located on the same node.
See
SubTask.getSameNodeConstraint()
-
Label constraint.
SubTask
s can specify that it can be only run on nodes that has the label.
We first fold the former constraint into the problem definition. That is, we now consider
a set of SubTask
s that need to be co-located as a single MappingWorksheet.WorkChunk
. Similarly,
we consider a set of all Executor
s from the same node as MappingWorksheet.ExecutorChunk
.
Now, the problem becomes the weighted matching problem from MappingWorksheet.WorkChunk
to MappingWorksheet.ExecutorChunk
.
An instance of MappingWorksheet
captures a problem definition, plus which
MappingWorksheet.ExecutorChunk
and MappingWorksheet.WorkChunk
are compatible. The purpose of this class
(and MappingWorksheet.ExecutorChunk
and MappingWorksheet.WorkChunk
) are to expose a lot of convenience methods
to assist various algorithms that produce the solution of this mapping problem,
which is represented as MappingWorksheet.Mapping
.
- Author:
- Kohsuke Kawaguchi
- See Also:
LoadBalancer#map(Task, MappingWorksheet)
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
executors
public final List<MappingWorksheet.ExecutorChunk> executors
works
public final List<MappingWorksheet.WorkChunk> works
item
public final Queue.BuildableItem item
Queue.BuildableItem
for which we are trying to figure out the execution plan. Never null.
MappingWorksheet
public MappingWorksheet(Queue.BuildableItem item,
List<? extends MappingWorksheet.ExecutorSlot> offers)
MappingWorksheet
public MappingWorksheet(Queue.BuildableItem item,
List<? extends MappingWorksheet.ExecutorSlot> offers,
Collection<? extends LoadPredictor> loadPredictors)
works
public MappingWorksheet.WorkChunk works(int index)
executors
public MappingWorksheet.ExecutorChunk executors(int index)
Copyright © 2004-2013. All Rights Reserved.