Class QueuingConfiguration

  • All Implemented Interfaces:
    com.marcnuri.yakc.model.Model

    public class QueuingConfiguration
    extends java.lang.Object
    implements com.marcnuri.yakc.model.Model
    QueuingConfiguration holds the configuration parameters for queuing
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static QueuingConfiguration.Builder builder()  
      protected boolean canEqual​(java.lang.Object other)  
      boolean equals​(java.lang.Object o)  
      java.lang.Number getHandSize()
      `handSize` is a small positive number that configures the shuffle sharding of requests into queues.
      java.lang.Number getQueueLengthLimit()
      `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.
      java.lang.Number getQueues()
      `queues` is the number of queues for this priority level.
      int hashCode()  
      void setHandSize​(java.lang.Number handSize)
      `handSize` is a small positive number that configures the shuffle sharding of requests into queues.
      void setQueueLengthLimit​(java.lang.Number queueLengthLimit)
      `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.
      void setQueues​(java.lang.Number queues)
      `queues` is the number of queues for this priority level.
      QueuingConfiguration.Builder toBuilder()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • QueuingConfiguration

        public QueuingConfiguration​(java.lang.Number handSize,
                                    java.lang.Number queueLengthLimit,
                                    java.lang.Number queues)
      • QueuingConfiguration

        public QueuingConfiguration()
    • Method Detail

      • getHandSize

        public java.lang.Number getHandSize()
        `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.
      • getQueueLengthLimit

        public java.lang.Number getQueueLengthLimit()
        `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.
      • getQueues

        public java.lang.Number getQueues()
        `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.
      • setHandSize

        public void setHandSize​(java.lang.Number handSize)
        `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.
      • setQueueLengthLimit

        public void setQueueLengthLimit​(java.lang.Number queueLengthLimit)
        `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.
      • setQueues

        public void setQueues​(java.lang.Number queues)
        `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.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • canEqual

        protected boolean canEqual​(java.lang.Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object