Class MappingWorksheet
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 the following 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:
-
Nested Class Summary
Modifier and TypeClassDescriptionfinal class
static class
final class
Represents the solution to the mapping problem.class
SubTask
s that need to run on the same node. -
Field Summary
Modifier and TypeFieldDescriptionfinal Queue.BuildableItem
Queue.BuildableItem
for which we are trying to figure out the execution plan.final List<MappingWorksheet.WorkChunk>
-
Constructor Summary
ConstructorDescriptionMappingWorksheet
(Queue.BuildableItem item, List<? extends MappingWorksheet.ExecutorSlot> offers) MappingWorksheet
(Queue.BuildableItem item, List<? extends MappingWorksheet.ExecutorSlot> offers, Collection<? extends LoadPredictor> loadPredictors) -
Method Summary
-
Field Details
-
executors
-
works
-
item
Queue.BuildableItem
for which we are trying to figure out the execution plan. Never null.
-
-
Constructor Details
-
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)
-
-
Method Details
-
works
-
executors
-