poorbarcode commented on code in PR #24423: URL: https://github.com/apache/pulsar/pull/24423#discussion_r2371536087
########## pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java: ########## @@ -919,6 +919,47 @@ The max allowed delay for delayed delivery (in milliseconds). If the broker rece ) private int brokerMaxConnections = 0; + @FieldContext( + category = CATEGORY_POLICIES, + doc = "It relates to configuration \"WriteBufferHighWaterMark\" of Netty Channel Config. If the number of bytes" + + " queued in the write buffer exceeds this value, channel writable state will start to return \"false\"." + ) + private int pulsarChannelWriteBufferHighWaterMark = 64 * 1024; + + @FieldContext( + category = CATEGORY_POLICIES, + doc = "It relates to configuration \"WriteBufferLowWaterMark\" of Netty Channel Config. If the number of bytes" + + " queued in the write buffer is smaller than this value, channel writable state will start to return" + + " \"true\"." + ) + private int pulsarChannelWriteBufferLowWaterMark = 32 * 1024; + + @FieldContext( + category = CATEGORY_POLICIES, + doc = "If enabled, the channel will pause to deal with new request once the writer buffer is full, until it" + + " is changed to writable." + ) + private boolean pulsarChannelPauseReceivingRequestsIfUnwritable = false; + + @FieldContext( + category = CATEGORY_POLICIES, + doc = "After the connection is recovered from an unreadable state, the channel will be rate-limited for a" + + " period of time to avoid overwhelming due to the backlog of requests. This parameter defines how" + + " many requests should be allowed in the rate limiting period." + + ) + private int pulsarChannelRateLimitingRequestsAfterResumeFromUnreadable = 1000; + + @FieldContext( + category = CATEGORY_POLICIES, + doc = "After the connection is recovered from an unreadable state, the channel will be rate-limited for a" + + " period of time to avoid overwhelming due to the backlog of requests. This parameter defines how" + + " long the rate limiting should last, in seconds. Once the bytes that are waiting to be sent out" + + " reach the \"pulsarChannelWriteBufferHighWaterMark\", the timer will be reset. Setting a negative" + + " value will disable the rate limiting." + ) + private int pulsarChannelRateLimitingSecondsAfterResumeFromUnreadable = 5; Review Comment: - `pulsarChannelRateLimitingSecondsAfterResumeFromUnreadable` means how long the rate limiter will work for - Added a new parameter to define the period: `pulsarChannelRateLimitingRequestsPeriodAfterResumeFromUnreadable` --- Renamed the `3` configurations - `pulsarChannelRateLimitingSecondsAfterResumeFromUnreadable` -> `pulsarChannelUnReadableCooldownSeconds` - `pulsarChannelRateLimitingRequestsAfterResumeFromUnreadable` -> `pulsarChannelUnReadableCooldownLimitRate` - `pulsarChannelRateLimitingRequestsPeriodAfterResumeFromUnreadable` -> `pulsarChannelUnReadableCooldownRateLimitPeriod` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org