1. 30 10月, 2014 1 次提交
    • M
      Networking: add more outbound IP binding fixes · 0014966c
      Matt Stancliff 提交于
      Same as the original bind fixes (we just missed these the
      first time around).
      
      This helps Redis not automatically send
      connections from the first IP on an interface if we are bound
      to a specific IP address (e.g. with multiple IP aliases on one
      interface, you want to send from _your_ IP, not from the first IP
      on the interface).
      0014966c
  2. 29 10月, 2014 1 次提交
    • A
      Diskless replication: missing listRewind() added. · 9ec22d92
      antirez 提交于
      This caused BGSAVE to be triggered a second time without any need when
      we switch from socket to disk target via the command
      
          CONFIG SET repl-diskless-sync no
      
      and there is already a slave waiting for the BGSAVE to start.
      Also comments clarified about what is happening.
      9ec22d92
  3. 27 10月, 2014 4 次提交
  4. 24 10月, 2014 1 次提交
  5. 17 10月, 2014 6 次提交
  6. 16 10月, 2014 5 次提交
  7. 15 10月, 2014 1 次提交
  8. 14 10月, 2014 1 次提交
  9. 10 10月, 2014 1 次提交
  10. 29 9月, 2014 2 次提交
  11. 27 6月, 2014 1 次提交
  12. 21 6月, 2014 1 次提交
  13. 07 6月, 2014 2 次提交
    • A
      ROLE output improved for slaves. · 6a13193d
      antirez 提交于
      Info about the replication state with the master added.
      6a13193d
    • A
      ROLE command added. · d34c2fa3
      antirez 提交于
      The new ROLE command is designed in order to provide a client with
      informations about the replication in a fast and easy to use way
      compared to the INFO command where the same information is also
      available.
      d34c2fa3
  14. 28 4月, 2014 1 次提交
    • A
      CLIENT LIST speedup via peerid caching + smart allocation. · 0bcc7cb4
      antirez 提交于
      This commit adds peer ID caching in the client structure plus an API
      change and the use of sdsMakeRoomFor() in order to improve the
      reallocation pattern to generate the CLIENT LIST output.
      
      Both the changes account for a very significant speedup.
      0bcc7cb4
  15. 05 2月, 2014 1 次提交
    • A
      Check for EAGAIN in sendBulkToSlave(). · 970de3e9
      antirez 提交于
      Sometime an osx master with a Linux server over a slow link caused
      a strange error where osx called the writable function for
      the socket but actually apparently there was no room in the socket
      buffer to accept the write: write(2) call returned an EAGAIN error,
      that was not checked, so we considered write(2) == 0 always as a connection
      reset, which was unfortunate since the bulk transfer has to start again.
      
      Also more errors are logged with the WARNING level in the same code path
      now.
      970de3e9
  16. 29 1月, 2014 1 次提交
    • A
      Cluster: function clusterGetSlaveRank() added. · 6f540320
      antirez 提交于
      Return the number of slaves for the same master having a better
      replication offset of the current slave, that is, the slave "rank" used
      to pick a delay before the request for election.
      6f540320
  17. 18 1月, 2014 1 次提交
  18. 08 1月, 2014 2 次提交
    • A
      Don't send REPLCONF ACK to old masters. · 90a81b4e
      antirez 提交于
      Masters not understanding REPLCONF ACK will reply with errors to our
      requests causing a number of possible issues.
      
      This commit detects a global replication offest set to -1 at the end of
      the replication, and marks the client representing the master with the
      REDIS_PRE_PSYNC flag.
      
      Note that this flag was called REDIS_PRE_PSYNC_SLAVE but now it is just
      REDIS_PRE_PSYNC as it is used for both slaves and masters starting with
      this commit.
      
      This commit fixes issue #1488.
      90a81b4e
    • A
      Clarify a comment in slaveTryPartialResynchronization(). · 3f92e056
      antirez 提交于
      3f92e056
  19. 22 12月, 2013 1 次提交
    • A
      Make new masters inherit replication offsets. · 94e8c9e7
      antirez 提交于
      Currently replication offsets could be used into a limited way in order
      to understand, out of a set of slaves, what is the one with the most
      updated data. For example this comparison is possible of N slaves
      were replicating all with the same master.
      
      However the replication offset was not transferred from master to slaves
      (that are later promoted as masters) in any way, so for instance if
      there were three instances A, B, C, with A master and B and C
      replication from A, the following could happen:
      
      C disconnects from A.
      B is turned into master.
      A is switched to master of B.
      B receives some write.
      
      In this context there was no way to compare the offset of A and C,
      because B would use its own local master replication offset as
      replication offset to initialize the replication with A.
      
      With this commit what happens is that when B is turned into master it
      inherits the replication offset from A, making A and C comparable.
      In the above case assuming no inconsistencies are created during the
      disconnection and failover process, A will show to have a replication
      offset greater than C.
      
      Note that this does not mean offsets are always comparable to understand
      what is, in a set of instances, since in more complex examples the
      replica with the higher replication offset could be partitioned away
      when picking the instance to elect as new master. However this in
      general improves the ability of a system to try to pick a good replica
      to promote to master.
      94e8c9e7
  20. 11 12月, 2013 3 次提交
    • A
      Slaves heartbeats during sync improved. · 11120689
      antirez 提交于
      The previous fix for false positive timeout detected by master was not
      complete. There is another blocking stage while loading data for the
      first synchronization with the master, that is, flushing away the
      current data from the DB memory.
      
      This commit uses the newly introduced dict.c callback in order to make
      some incremental work (to send "\n" heartbeats to the master) while
      flushing the old data from memory.
      
      It is hard to write a regression test for this issue unfortunately. More
      support for debugging in the Redis core would be needed in terms of
      functionalities to simulate a slow DB loading / deletion.
      11120689
    • A
      dict.c: added optional callback to dictEmpty(). · 2eb781b3
      antirez 提交于
      Redis hash table implementation has many non-blocking features like
      incremental rehashing, however while deleting a large hash table there
      was no way to have a callback called to do some incremental work.
      
      This commit adds this support, as an optiona callback argument to
      dictEmpty() that is currently called at a fixed interval (one time every
      65k deletions).
      2eb781b3
    • A
      Log empty DB + Loading data into two separated messages. · 2c4ab8a5
      antirez 提交于
      2c4ab8a5
  21. 05 12月, 2013 1 次提交
  22. 04 12月, 2013 1 次提交
  23. 11 11月, 2013 1 次提交