Class QuotaConfig


  • public class QuotaConfig
    extends java.lang.Object
    Config for quota of various resources in Ambry.
    • Field Detail

      • QUOTA_ENFORCER_SOURCE_PAIR_INFO_STR

        public static final java.lang.String QUOTA_ENFORCER_SOURCE_PAIR_INFO_STR
        See Also:
        Constant Field Values
      • QUOTA_CONFIG_PREFIX

        public static final java.lang.String QUOTA_CONFIG_PREFIX
        See Also:
        Constant Field Values
      • REQUEST_THROTTLING_ENABLED

        public static final java.lang.String REQUEST_THROTTLING_ENABLED
        See Also:
        Constant Field Values
      • REQUEST_QUOTA_ENFORCER_SOURCE_PAIR_INFO_JSON

        public static final java.lang.String REQUEST_QUOTA_ENFORCER_SOURCE_PAIR_INFO_JSON
        See Also:
        Constant Field Values
      • QUOTA_MANAGER_FACTORY

        public static final java.lang.String QUOTA_MANAGER_FACTORY
        See Also:
        Constant Field Values
      • DEFAULT_QUOTA_MANAGER_FACTORY

        public static final java.lang.String DEFAULT_QUOTA_MANAGER_FACTORY
        See Also:
        Constant Field Values
      • DEFAULT_QUOTA_THROTTLING_MODE

        public static final java.lang.String DEFAULT_QUOTA_THROTTLING_MODE
      • requestThrottlingEnabled

        @Config("quota.request.throttling.enabled")
        @Default("false")
        public boolean requestThrottlingEnabled
        Config to enable throttling on customer's account or container.
      • requestQuotaEnforcerSourcePairInfoJson

        @Config("quota.request.enforcer.source.pair.info.json")
        public java.lang.String requestQuotaEnforcerSourcePairInfoJson
        Serialized json containing pairs of enforcer classes and corresponding source classes. This information should be of the following form:
         {
           "quotaEnforcerSourcePairInfo" : [
             {
               "enforcer":"com.github.ambry.quota.QuotaEnforcer",
               "source": "com.github.ambry.quota.QuotaSource"
             },
             {
               "enforcer":"com.github.ambry.quota.AnotherQuotaEnforcer",
               "source": "com.github.ambry.quota.AnotherQuotaSource"
             }
           ]
         }
         
      • quotaManagerFactory

        @Config("quota.manger.factory")
        @Default("com.github.ambry.quota.AmbryQuotaManagerFactory")
        public java.lang.String quotaManagerFactory
        The quota manager factory class.
      • throttlingMode

        @Config("quota.throttling.mode")
        public QuotaMode throttlingMode
        The mode in which quota throttling is being done (TRACKING/THROTTLING).