hudson.model.queue
Class MappingWorksheet

java.lang.Object
  extended by 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 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 two constraints:

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:
LoadBalancer#map(Task, MappingWorksheet)

Nested Class Summary
 class MappingWorksheet.ExecutorChunk
           
static class MappingWorksheet.ExecutorSlot
           
 class MappingWorksheet.Mapping
          Represents the solution to the mapping problem.
 class MappingWorksheet.WorkChunk
           
 
Field Summary
 List<MappingWorksheet.ExecutorChunk> executors
           
 Queue.BuildableItem item
          Queue.BuildableItem for which we are trying to figure out the execution plan.
 List<MappingWorksheet.WorkChunk> works
           
 
Constructor Summary
MappingWorksheet(Queue.BuildableItem item, List<? extends MappingWorksheet.ExecutorSlot> offers)
           
MappingWorksheet(Queue.BuildableItem item, List<? extends MappingWorksheet.ExecutorSlot> offers, Collection<? extends LoadPredictor> loadPredictors)
           
 
Method Summary
 MappingWorksheet.ExecutorChunk executors(int index)
           
 MappingWorksheet.WorkChunk works(int index)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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.

Constructor Detail

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 Detail

works

public MappingWorksheet.WorkChunk works(int index)

executors

public MappingWorksheet.ExecutorChunk executors(int index)


Copyright © 2004-2013. All Rights Reserved.