Paragrf commented on PR #3378:
URL: https://github.com/apache/kvrocks/pull/3378#issuecomment-3995929601

   > I've reviewed the CLIENT PAUSE/UNPAUSE implementation and noticed a couple 
of behavioral differences compared to Redis that I wanted to flag:
   > 
   > Blocking Scope (ALL mode):
   > 
   > In Redis, CLIENT PAUSE timeout ALL blocks all commands (including CLIENT 
PAUSE/UNPAUSE itself). In our current implementation, these commands remain 
unblocked.
   > 
   > Overwriting Behavior (WRITE mode):
   > 
   > When re-invoking CLIENT PAUSE timeout WRITE during an active write-block:
   > 
   > Redis: Only allows overwriting if the new timeout is longer than the 
remaining time, or if using ALL (which overrides WRITE). Current 
Implementation: New WRITE pauses fully overwrite existing ones (timeout + 
config), regardless of duration/type.
   > 
   > Could we confirm if these differences align with the intended behavior for 
Kvrocks?
   
   First question:
   According to the official documentation 
([PAUSE](https://redis.io/docs/latest/commands/client-pause/) & 
[UNPAUSE](https://redis.io/docs/latest/commands/client-unpause/)):
   
   Non-Blocking: The CLIENT PAUSE command does not block itself or the CLIENT 
UNPAUSE command.
   
   If the design allowed CLIENT PAUSE ALL to block PAUSE/UNPAUSE themselves, 
setting an excessively long timeout by mistake would leave the cluster 
unrecoverable except by waiting for the timer to expire. Such a design would be 
a significant security and operational risk.


-- 
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