Ejemplo n.º 1
0
 /// <summary>
 /// Check sanity of capacities:
 /// - capacity &lt;= maxCapacity
 /// - absCapacity &lt;= absMaximumCapacity
 /// </summary>
 private static void CapacitiesSanityCheck(string queueName, QueueCapacities queueCapacities
                                           )
 {
     foreach (string label in queueCapacities.GetExistingNodeLabels())
     {
         float capacity        = queueCapacities.GetCapacity(label);
         float maximumCapacity = queueCapacities.GetMaximumCapacity(label);
         if (capacity > maximumCapacity)
         {
             throw new ArgumentException("Illegal queue capacity setting, " + "(capacity=" + capacity
                                         + ") > (maximum-capacity=" + maximumCapacity + "). When label=[" + label + "]");
         }
         // Actually, this may not needed since we have verified capacity <=
         // maximumCapacity. And the way we compute absolute capacity (abs(x) =
         // cap(x) * cap(x.parent) * ...) is a monotone increasing function. But
         // just keep it here to make sure our compute abs capacity method works
         // correctly.
         float absCapacity    = queueCapacities.GetAbsoluteCapacity(label);
         float absMaxCapacity = queueCapacities.GetAbsoluteMaximumCapacity(label);
         if (absCapacity > absMaxCapacity)
         {
             throw new ArgumentException("Illegal queue capacity setting, " + "(abs-capacity="
                                         + absCapacity + ") > (abs-maximum-capacity=" + absMaxCapacity + "). When label=["
                                         + label + "]");
         }
     }
 }
Ejemplo n.º 2
0
 // Set absolute capacities for {capacity, maximum-capacity}
 private static void UpdateAbsoluteCapacitiesByNodeLabels(QueueCapacities queueCapacities
                                                          , QueueCapacities parentQueueCapacities)
 {
     foreach (string label in queueCapacities.GetExistingNodeLabels())
     {
         float capacity = queueCapacities.GetCapacity(label);
         if (capacity > 0f)
         {
             queueCapacities.SetAbsoluteCapacity(label, capacity * (parentQueueCapacities == null
                                          ? 1 : parentQueueCapacities.GetAbsoluteCapacity(label)));
         }
         float maxCapacity = queueCapacities.GetMaximumCapacity(label);
         if (maxCapacity > 0f)
         {
             queueCapacities.SetAbsoluteMaximumCapacity(label, maxCapacity * (parentQueueCapacities
                                                                              == null ? 1 : parentQueueCapacities.GetAbsoluteMaximumCapacity(label)));
         }
     }
 }
Ejemplo n.º 3
0
 public virtual float GetAbsoluteMaximumCapacity()
 {
     return(queueCapacities.GetAbsoluteMaximumCapacity());
 }