1. 21 Mar, 2015 2 commits
    • antirez's avatar
      Net: processUnblockedClients() and clientsArePaused() minor changes. · 2b278a33
      antirez authored
      1. No need to set btype in processUnblockedClients(), since clients
         flagged REDIS_UNBLOCKED should have it already cleared.
      2. When putting clients in the unblocked clients list, clientsArePaused()
         should flag them with REDIS_UNBLOCKED. Not strictly needed with the
         current code but is more coherent.
      2b278a33
    • antirez's avatar
      Net: clientsArePaused() should not touch blocked clients. · 5fe4a231
      antirez authored
      When the list of unblocked clients were processed, btype was set to
      blocking type none, but the client remained flagged with REDIS_BLOCKED.
      When timeout is reached (or when the client disconnects), unblocking it
      will trigger an assertion.
      
      There is no need to process pending requests from blocked clients, so
      now clientsArePaused() just avoid touching blocked clients.
      
      Close #2467.
      5fe4a231
  2. 20 Mar, 2015 5 commits
    • antirez's avatar
    • antirez's avatar
      Cluster: separate unknown master check from the rest. · 230d1414
      antirez authored
      In no case we should try to attempt to failover if myself->slaveof is
      NULL.
      230d1414
    • antirez's avatar
      Cluster: refactoring around configEpoch handling. · 4f2555aa
      antirez authored
      This commit moves the process of generating a new config epoch without
      consensus out of the clusterCommand() implementation, in order to make
      it reusable for other reasons (current target is to have a CLUSTER
      FAILOVER option forcing the failover when no master majority is
      reachable).
      
      Moreover the commit moves other functions which are similarly related to
      config epochs in a new logical section of the cluster.c file, just for
      clarity.
      4f2555aa
    • antirez's avatar
      Cluster: better cluster state transiction handling. · 25c0f5ac
      antirez authored
      Before we relied on the global cluster state to make sure all the hash
      slots are linked to some node, when getNodeByQuery() is called. So
      finding the hash slot unbound was checked with an assertion. However
      this is fragile. The cluster state is often updated in the
      clusterBeforeSleep() function, and not ASAP on state change, so it may
      happen to process clients with a cluster state that is 'ok' but yet
      certain hash slots set to NULL.
      
      With this commit the condition is also checked in getNodeByQuery() and
      reported with a identical error code of -CLUSTERDOWN but slightly
      different error message so that we have more debugging clue in the
      future.
      
      Root cause of issue #2288.
      25c0f5ac
    • antirez's avatar
      Cluster: move clusterBeforeSleep() call before unblocked clients processing. · 2ecb5edf
      antirez authored
      Related to issue #2288.
      2ecb5edf
  3. 18 Mar, 2015 1 commit
  4. 13 Mar, 2015 5 commits
  5. 12 Mar, 2015 2 commits
  6. 11 Mar, 2015 5 commits
  7. 10 Mar, 2015 4 commits
  8. 08 Mar, 2015 1 commit
  9. 04 Mar, 2015 1 commit
    • antirez's avatar
      Fix iterator for issue #2438. · 509a6cc1
      antirez authored
      Itereator misuse due to analyzeLatencyForEvent() accessing the
      dictionary during the iteration, without the iterator being
      reclared as safe.
      509a6cc1
  10. 27 Feb, 2015 11 commits
  11. 26 Feb, 2015 2 commits
    • antirez's avatar
      Improvements to PR #2425 · 832b0c7c
      antirez authored
      1. Remove useless "cs" initialization.
      2. Add a "select" var to capture a condition checked multiple times.
      3. Avoid duplication of the same if (!copy) conditional.
      4. Don't increment dirty if copy is given (no deletion is performed),
         otherwise we propagate MIGRATE when not needed.
      832b0c7c
    • Tommy Wang's avatar
      Add last_dbid to migrateCachedSocket to avoid redundant SELECT · 7fda935a
      Tommy Wang authored
      Avoid redundant SELECT calls when continuously migrating keys to
      the same dbid within a target Redis instance.
      7fda935a
  12. 25 Feb, 2015 1 commit