/// <summary>Add multiple resources for the specified interval</summary> /// <param name="reservationInterval"> /// the interval for which the resource is to be /// added /// </param> /// <param name="ReservationRequests">the resources to be added</param> /// <param name="clusterResource">the total resources in the cluster</param> /// <returns>true if addition is successful, false otherwise</returns> public virtual bool AddCompositeInterval(ReservationInterval reservationInterval, IList <ReservationRequest> ReservationRequests, Org.Apache.Hadoop.Yarn.Api.Records.Resource clusterResource) { ReservationRequest aggregateReservationRequest = Org.Apache.Hadoop.Yarn.Util.Records .NewRecord <ReservationRequest>(); Org.Apache.Hadoop.Yarn.Api.Records.Resource capacity = Org.Apache.Hadoop.Yarn.Api.Records.Resource .NewInstance(0, 0); foreach (ReservationRequest ReservationRequest in ReservationRequests) { Resources.AddTo(capacity, Resources.Multiply(ReservationRequest.GetCapability(), ReservationRequest.GetNumContainers())); } aggregateReservationRequest.SetNumContainers((int)Math.Ceil(Resources.Divide(resourceCalculator , clusterResource, capacity, minAlloc))); aggregateReservationRequest.SetCapability(minAlloc); return(AddInterval(reservationInterval, aggregateReservationRequest)); }