git-hulk opened a new pull request, #3560:
URL: https://github.com/apache/kvrocks/pull/3560

   Add the client-output-buffer-limit configuration to disconnect clients that 
are not reading data from the server fast enough, following the same semantics 
as Redis: a client is disconnected immediately once the hard limit is reached, 
or when it stays over the soft limit for more than the configured seconds 
continuously.
   
   Unlike Redis, all the classes are configured in a single line, and only the 
specified classes are changed:
   
   ```
   client-output-buffer-limit normal 0 0 0 slave 0 0 0 pubsub 32m 8m 60
   ```
   
   The limit takes effect on the normal and pubsub classes since the 
replication stream is written to the socket directly instead of going through 
the connection output buffer. The slave class is accepted for compatibility but 
takes no effect: slow replicas are still handled by max-replication-lag and 
replication-send-timeout-ms.
   
   The check runs every time data is appended to the connection output buffer. 
A client over the limit is closed asynchronously by manually triggering the 
deferred write callback, since the write callback of a stuck client may never 
fire on its own; the callback then runs in the owner worker's event loop where 
freeing the connection is safe.
   
   Also expose the client_output_buffer_limit_disconnections counter in INFO 
stats, and classify clients subscribed to only shard channels as pubsub clients 
so that they are covered by the pubsub class as well.
   
   Part of #2284
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to