Class RoundRobin

All Implemented Interfaces:
SiteSelector

public class RoundRobin extends AbstractPerJob
This ends up scheduling the jobs in a round robin manner. In order to avoid starvation, the jobs are scheduled in a round robin manner per level, and the queue is initialised for each level.
Version:
$Revision$
Author:
Karan Vahi
  • Field Details

    • mCurrentLevel

      private int mCurrentLevel
      The current level in the abstract workflow. It is level that is designated by Chimera while constructing the graph bottom up.
    • mExecPools

      private LinkedList mExecPools
      The list of pools that have been given by the user at run time or has been authenticated against. At present these are the same as the list of pools that is passed for site selection at each function.
  • Constructor Details

    • RoundRobin

      public RoundRobin()
      The default constructor. Not to be used.
  • Method Details

    • description

      public String description()
      Returns a brief description of the site selection techinque implemented by this class.
      Returns:
      String
    • mapJob

      public void mapJob(edu.isi.pegasus.planner.classes.Job job, List sites)
      Maps a job in the workflow to an execution site.
      Specified by:
      mapJob in class AbstractPerJob
      Parameters:
      job - the job to be mapped.
      sites - the list of String objects representing the execution sites that can be used.
    • initialiseList

      private void initialiseList(List pools)
      It initialises the internal list. A node in the list corresponds to a pool that can be used, and has the value associated with it which is the number of jobs in the current level have been scheduled to it.
      Parameters:
      pools - List
    • listToString

      private String listToString(List elements)