All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.k8s.api.flowcontrol.v1.QueuingConfiguration Maven / Gradle / Ivy

There is a newer version: 1.30.4
Show newest version
package io.k8s.api.flowcontrol.v1;

import java.lang.Long;

/**
 * QueuingConfiguration holds the configuration parameters for queuing
 */
public class QueuingConfiguration {
  public Long handSize;

  public Long queueLengthLimit;

  public Long queues;

  /**
   * `handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.
   */
  public QueuingConfiguration handSize(Long handSize) {
    this.handSize = handSize;
    return this;
  }

  /**
   * `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.
   */
  public QueuingConfiguration queueLengthLimit(Long queueLengthLimit) {
    this.queueLengthLimit = queueLengthLimit;
    return this;
  }

  /**
   * `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.
   */
  public QueuingConfiguration queues(Long queues) {
    this.queues = queues;
    return this;
  }

  public static QueuingConfiguration queuingConfiguration() {
    return new QueuingConfiguration();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy