• antirez's avatar
    Fix replicas migration by adding a new flag. · e0f22df9
    antirez authored
    Some time ago I broken replicas migration (reported in #2924).
    The idea was to prevent masters without replicas from getting replicas
    because of replica migration, I remember it to create issues with tests,
    but there is no clue in the commit message about why it was so
    undesirable.
    
    However my patch as a side effect totally ruined the concept of replicas
    migration since we want it to work also for instances that, technically,
    never had slaves in the past: promoted slaves.
    
    So now instead the ability to be targeted by replicas migration, is a
    new flag "migrate-to". It only applies to masters, and is set in the
    following two cases:
    
    1. When a master gets a slave, it is set.
    2. When a slave turns into a master because of fail over, it is set.
    
    This way replicas migration targets are only masters that used to have
    slaves, and slaves of masters (that used to have slaves... obviously)
    and are promoted.
    
    The new flag is only internal, and is never exposed in the output nor
    persisted in the nodes configuration, since all the information to
    handle it are implicit in the cluster configuration we already have.
    e0f22df9
cluster.h 12.4 KB