java.lang.Object
org.apache.hadoop.yarn.server.resourcemanager.reservation.NoOverCommitPolicy
All Implemented Interfaces:
SharingPolicy
Direct Known Subclasses:
CapacityOverTimePolicy

@LimitedPrivate("yarn") @Unstable public class NoOverCommitPolicy extends Object implements SharingPolicy
This policy enforce a simple physical cluster capacity constraints, by validating that the allocation proposed fits in the current plan. This validation is compatible with "updates" and in verifying the capacity constraints it conceptually remove the prior version of the reservation.
  • Constructor Details

    • NoOverCommitPolicy

      public NoOverCommitPolicy()
  • Method Details

    • validate

      public void validate(Plan plan, ReservationAllocation reservation) throws PlanningException
      Description copied from interface: SharingPolicy
      This method runs the policy validation logic, and return true/false on whether the ReservationAllocation is acceptable according to this sharing policy.
      Specified by:
      validate in interface SharingPolicy
      Parameters:
      plan - the Plan we validate against
      reservation - the allocation proposed to be added to the Plan
      Throws:
      PlanningException - if the policy is respected if we add this ReservationAllocation to the Plan
    • getValidWindow

      public long getValidWindow()
      Description copied from interface: SharingPolicy
      Returns the time range before and after the current reservation considered by this policy. In particular, this informs the archival process for the Plan, i.e., reservations regarding times before (now - validWindow) can be deleted.
      Specified by:
      getValidWindow in interface SharingPolicy
      Returns:
      validWindow the window of validity considered by the policy.
    • init

      public void init(String planQueuePath, ReservationSchedulerConfiguration conf)
      Description copied from interface: SharingPolicy
      Initialize this policy.
      Specified by:
      init in interface SharingPolicy
      Parameters:
      planQueuePath - the name of the queue for this plan
      conf - the system configuration
    • availableResources

      public RLESparseResourceAllocation availableResources(RLESparseResourceAllocation available, Plan plan, String user, org.apache.hadoop.yarn.api.records.ReservationId oldId, long start, long end) throws PlanningException
      Description copied from interface: SharingPolicy
      This method provide a (partial) instantaneous validation by applying business rules (such as max number of parallel containers allowed for a user). To provide the agent with more feedback the returned parameter is expressed in number of containers that can be fit in this time according to the business rules.
      Specified by:
      availableResources in interface SharingPolicy
      Parameters:
      available - the amount of resources that would be offered if not constrained by the policy
      plan - reference the the current Plan
      user - the username
      oldId - (optional) the id of a reservation being updated
      start - the start time for the range we are querying
      end - the end time for the range we are querying
      Returns:
      the available resources expressed as a RLESparseResourceAllocation
      Throws:
      PlanningException - throws if the request is not valid