1. 10 May, 2014 1 commit
  2. 09 May, 2014 5 commits
  3. 08 May, 2014 2 commits
    • antirez's avatar
      Sentinel: log when a failover will be attempted again. · 21027786
      antirez authored
      When a Sentinel performs a failover (successful or not), or when a
      Sentinel votes for a different Sentinel trying to start a failover, it
      sets a min delay before it will try to get elected for a failover.
      
      While not strictly needed, because if multiple Sentinels will try
      to failover the same master at the same time, only one configuration
      will eventually win, this serialization is practically very useful.
      Normal failovers are cleaner: one Sentinel starts to failover, the
      others update their config when the Sentinel performing the failover
      is able to get the selected slave to move from the role of slave to the
      one of master.
      
      However currently this timeout was implicit, so users could see
      Sentinels not reacting, after a failed failover, for some time, without
      giving any feedback in the logs to the poor sysadmin waiting for clues.
      
      This commit makes Sentinels more verbose about the delay: when a master
      is down and a failover attempt is not performed because the delay has
      still not elaped, something like that will be logged:
      
          Next failover delay: I will not start a failover
          before Thu May  8 16:48:59 2014
      21027786
    • antirez's avatar
      Sentinel: generate +config-update-from event when a new config is received. · 931beae9
      antirez authored
      This event makes clear, before the switch-master event is generated,
      that a Sentinel received a configuration update from another Sentinel.
      931beae9
  4. 07 May, 2014 12 commits
  5. 02 May, 2014 5 commits
  6. 30 Apr, 2014 3 commits
  7. 29 Apr, 2014 8 commits
    • antirez's avatar
      CLUSTER SET-CONFIG-EPOCH implemented. · 11d9ecb7
      antirez authored
      Initially Redis Cluster accepted that after cluster creation all the
      nodes were at configEpoch 0, evolving from zero as failovers happen.
      
      However later the semantic was made more strict in order to make sure a
      cluster has always all the master nodes with a different configEpoch,
      which is more robust in some corner case (especially resulting from
      errors by the system administrator).
      
      To assign different configEpochs to different nodes at startup was a
      task performed naturally by the config conflicts resolution algorithm
      (see the Cluster specification). However this works well only for small
      clusters or when there are actually just a few collisions, since it is
      designed for exceptional cases.
      
      When a large cluster is created hundred of nodes can be at epoch 0, so
      the conflict resolution code is slow to provide an unique config to each
      node. For this reason this new command was introduced. It can be called
      only when a node is totally fresh: no other nodes known, and configEpoch
      set to zero, so it is safe even against misuses.
      
      redis-trib will use the new command in order to start the cluster
      already setting an incremental unique config to every node.
      11d9ecb7
    • antirez's avatar
      Cluster test: slots allocation. · 7b5ce1ff
      antirez authored
      7b5ce1ff
    • antirez's avatar
      Cluster test: use 20 instances. · 4a3db255
      antirez authored
      This makes tests a bit slower, but it is better to test things at a
      decent scale instead of using just a few nodes, and for a few tests we
      actually need so many nodes.
      4a3db255
    • antirez's avatar
      e8631a69
    • antirez's avatar
      Cluster test: config epoch conflict resolution. · 9e422f74
      antirez authored
      9e422f74
    • antirez's avatar
      Cluster test: auto-discovery to form full mesh. · 2c556223
      antirez authored
      2c556223
    • antirez's avatar
      2555b2f4
    • antirez's avatar
      e1b12981
  8. 28 Apr, 2014 4 commits