1. 27 3月, 2013 1 次提交
  2. 26 3月, 2013 7 次提交
    • A
      Allow SELECT while loading the DB. · df69155e
      antirez 提交于
      Fixes issue #1024.
      df69155e
    • A
      TTL / PTTL commands: two bugs fixed. · 873f328f
      antirez 提交于
      This commit fixes two corner cases for the TTL command.
      
      1) When the key was already logically expired (expire time older
      than current time) the command returned -1 instead of -2.
      
      2) When the key was existing and the expire was found to be exactly 0
      (the key was just about to expire), the command reported -1 (that is, no
      expire) instead of a TTL of zero (that is, about to expire).
      873f328f
    • A
      Flag PUBLISH as read-only in the command table. · 8bb5eb73
      antirez 提交于
      8bb5eb73
    • A
      Transactions: propagate MULTI/EXEC only when needed. · 71f3e743
      antirez 提交于
      MULTI/EXEC is now propagated to the AOF / Slaves only once we encounter
      the first command that is not a read-only one inside the transaction.
      
      The old behavior was to always propagate an empty MULTI/EXEC block when
      the transaction was composed just of read only commands, or even
      completely empty. This created two problems:
      
      1) It's a bandwidth waste in the replication link and a space waste
         inside the AOF file.
      
      2) We used to always increment server.dirty to force the propagation of
         the EXEC command, resulting into triggering RDB saves more often
         than needed.
      
      Note: even read-only commands may also trigger writes that will be
      propagated, when we access a key that is found expired and Redis will
      synthesize a DEL operation. However there is no need for this to stay
      inside the transaction itself, but only to be ordered.
      
      So for instance something like:
      
          MULTI
          GET foo
          SET key zap
          EXEC
      
      May be propagated into:
      
          DEL foo
          MULTI
          SET key zap
          EXEC
      
      While the DEL is outside the transaction, the commands are delivered in
      the right order and it is not possible for other commands to be inserted
      between DEL and MULTI.
      71f3e743
    • A
      02c269e2
    • A
      Transactions: use the propagate() API to propagate MULTI. · 2f497340
      antirez 提交于
      The behavior is the same, but the code is now cleaner and uses the
      proper interface instead of dealing directly with AOF/replication
      functions.
      2f497340
    • S
      Merge pull request #1003 from NanXiao/patch-3 · afce0106
      Salvatore Sanfilippo 提交于
      Update config.c
      afce0106
  3. 25 3月, 2013 6 次提交
  4. 23 3月, 2013 2 次提交
    • A
      redis-cli --stat, stolen from redis-tools. · 09aa55a3
      antirez 提交于
      Redis-tools is a connection of tools no longer mantained that was
      intented as a way to economically make sense of Redis in the pre-vmware
      sponsorship era. However there was a nice redis-stat utility, this
      commit imports one of the functionalities of this tool here in redis-cli
      as it seems to be pretty useful.
      
      Usage: redis-cli --stat
      
      The output is similar to vmstat in the format, but with Redis specific
      stuff of course.
      
      From the point of view of the monitored instance, only INFO is used in
      order to grab data.
      09aa55a3
    • A
      redis-trib: All output wrapped by a specific function. · c195289e
      antirez 提交于
      This is needed in order to colorize it as next step.
      We use conventions in output messages such as
      
      >>> This is an action
      *** This is a warning
      [ERR] This is an error
      [OK] That's fine
      
      And so forth, so that a color will be associated checking the first
      three chars.
      c195289e
  5. 22 3月, 2013 9 次提交
  6. 21 3月, 2013 2 次提交
  7. 20 3月, 2013 5 次提交
    • A
      Cluster: clear the PROMOTED slave directly into clusterSetMaster(). · 8c1bc8e8
      antirez 提交于
      This way we make sure every time a master is turned into a replica
      the flag will be cleared.
      8c1bc8e8
    • A
      Cluster: master node must clear its hash slots when turning into a slave. · e006407f
      antirez 提交于
      When a master turns into a slave after a failover event, make sure to
      clear the assigned slots before setting up the replication, as a slave
      should never claim slots in an explicit way, but just take over the
      master slots when replacing its master.
      e006407f
    • A
      Cluster: new flag PROMOTED introduced. · 506f9a42
      antirez 提交于
      A slave node set this flag for itself when, after receiving authorization
      from the majority of nodes, it turns itself into a master.
      
      At the same time now this flag is tested by nodes receiving a PING
      message before reconfiguring after a failover event. This makes the
      system more robust: even if currently there is no way to manually turn
      a slave into a master it is possible that we'll have such a feature in
      the future, or that simply because of misconfiguration a node joins the
      cluster as master while others believe it's a slave. This alone is now
      no longer enough to trigger reconfiguration as other nodes will check
      for the PROMOTED flag.
      
      The PROMOTED flag is cleared every time the node is turned back into a
      replica of some other node.
      506f9a42
    • A
      Cluster: add sender flags in cluster bus messages header. · 026b9483
      antirez 提交于
      Sender flags were not propagated for the sender, but only for nodes in
      the gossip section. This is odd and in the next commits we'll need to
      get updated flags for the sender node, so this commit adds a new field
      in the cluster messages header.
      
      The message header is the same size as we reused some free space that
      was marked as 'unused' because of alignment concerns.
      026b9483
    • A
      Cluster: turn old master into a replica of node that failed over. · d15b027d
      antirez 提交于
      So when the failing master node is back in touch with the cluster,
      instead of remaining unused it is converted into a replica of the
      new master, ready to perform the fail over if the new master node
      will fail at some point.
      
      Note that as a side effect clients with stale configuration are now
      not an issue as well, as the node converted into a slave will not
      accept queries but will redirect clients accordingly.
      d15b027d
  8. 19 3月, 2013 3 次提交
  9. 15 3月, 2013 5 次提交