• antirez's avatar
    CLUSTER RESET: Flush dataset if node is a slave. · 955b2562
    antirez authored
    For non-empty masters, CLUSTER RESET is denied, and the user requires to
    start to reset a node by explicitly clearing it with FLUSHALL.
    However CLUSTER RESET when executed with slaves don't have this
    restrictions since data is just a replica of the master, and with
    read-only slaves it is also not possible to remove the data set. However
    the node was turned from slave to master after a reset, without touching
    the old slave data. This is 99.99% of times not appropriate and forces
    full resets to follow this path to work with both slave and master
    nodes:
    
        FLUSHALL
        CLUSTER RESET HARD
        FLUSHALL
    
    Since we need the first flushall for masters, and the second for slaves.
    
    This commit changes the behavior so that CLUSTER RESET removes the data set
    of a slave node during a reset, in the moment it gets turned into a master,
    so the new pattern is simply:
    
        FLUSHALL (that may fail for slaves)
        CLUSTER RESET
    955b2562
cluster.c 177 KB