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 SubTasks), and we are also given a number
of idle Executors, 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.
SubTasks 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 SubTasks that need to be co-located as a single MappingWorksheet.WorkChunk. Similarly,
we consider a set of all Executors 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
Nested ClassesModifier and TypeClassDescriptionfinal classstatic classfinal classRepresents the solution to the mapping problem.classSubTasks that need to run on the same node. -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal Queue.BuildableItemQueue.BuildableItemfor which we are trying to figure out the execution plan.final List<MappingWorksheet.WorkChunk> -
Constructor Summary
ConstructorsConstructorDescriptionMappingWorksheet(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.BuildableItemfor 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
-