• Moti Cohen's avatar
    Add new SFLUSH command to cluster for slot-based FLUSH (#13564) · d092d64d
    Moti Cohen authored
    This PR introduces a new `SFLUSH` command to cluster mode that allows
    partial flushing of nodes based on specified slot ranges. Current
    implementation is designed to flush all slots of a shard, but future
    extensions could allow for more granular flushing.
    
    **Command Usage:**
    `SFLUSH <start-slot> <end-slot> [<start-slot> <end-slot>]* [SYNC|ASYNC]`
    
    This command removes all data from the specified slots, either
    synchronously or asynchronously depending on the optional SYNC/ASYNC
    argument.
    
    **Functionality:**
    Current imp of `SFLUSH` command verifies that the provided slot ranges
    are valid and cover all of the node's slots before proceeding. If slots
    are partially or incorrectly specified, the command will fail and return
    an error, ensuring that all slots of a node must be fully covered for
    the flush to proceed.
    
    The function supports both synchronous (default) and asynchronous
    flushing. In addition, if possible, SFLUSH SYNC will be run as blocking
    ASYNC as an optimization.
    d092d64d
cluster.c 63.8 KB