1. 28 10月, 2013 4 次提交
  2. 25 10月, 2013 15 次提交
  3. 11 10月, 2013 2 次提交
  4. 09 10月, 2013 5 次提交
  5. 08 10月, 2013 2 次提交
  6. 07 10月, 2013 3 次提交
  7. 04 10月, 2013 7 次提交
    • A
      Replication: install the write handler when reusing a cached master. · 0150c70b
      antirez 提交于
      Sometimes when we resurrect a cached master after a successful partial
      resynchronization attempt, there is pending data in the output buffers
      of the client structure representing the master (likely REPLCONF ACK
      commands).
      
      If we don't reinstall the write handler, it will never be installed
      again by addReply*() family functions as they'll assume that if there is
      already data pending, the write handler is already installed.
      
      This bug caused some slaves after a successful partial sync to never
      send REPLCONF ACK, and continuously being detected as timing out by the
      master, with a disconnection / reconnection loop.
      0150c70b
    • A
      Replication: install the write handler when reusing a cached master. · 1461422c
      antirez 提交于
      Sometimes when we resurrect a cached master after a successful partial
      resynchronization attempt, there is pending data in the output buffers
      of the client structure representing the master (likely REPLCONF ACK
      commands).
      
      If we don't reinstall the write handler, it will never be installed
      again by addReply*() family functions as they'll assume that if there is
      already data pending, the write handler is already installed.
      
      This bug caused some slaves after a successful partial sync to never
      send REPLCONF ACK, and continuously being detected as timing out by the
      master, with a disconnection / reconnection loop.
      1461422c
    • A
      Replication: fix master timeout. · 6d8c2a48
      antirez 提交于
      Since we started sending REPLCONF ACK from slaves to masters, the
      lastinteraction field of the client structure is always refreshed as
      soon as there is room in the socket output buffer, so masters in timeout
      are detected with too much delay (the socket buffer takes a lot of time
      to be filled by small REPLCONF ACK <number> entries).
      
      This commit only counts data received as interactions with a master,
      solving the issue.
      6d8c2a48
    • A
      Replication: fix master timeout. · b41570f7
      antirez 提交于
      Since we started sending REPLCONF ACK from slaves to masters, the
      lastinteraction field of the client structure is always refreshed as
      soon as there is room in the socket output buffer, so masters in timeout
      are detected with too much delay (the socket buffer takes a lot of time
      to be filled by small REPLCONF ACK <number> entries).
      
      This commit only counts data received as interactions with a master,
      solving the issue.
      b41570f7
    • A
      PSYNC: safer handling of PSYNC requests. · d62ae1ec
      antirez 提交于
      There was a bug that over-esteemed the amount of backlog available,
      however this could only happen when a slave was asking for an offset
      that was in the "future" compared to the master replication backlog.
      
      Now this case is handled well and logged as an incident in the master
      log file.
      d62ae1ec
    • A
      Add REWRITE to CONFIG subcommands help message. · 4f9a6939
      antirez 提交于
      4f9a6939
    • A
      PSYNC: safer handling of PSYNC requests. · 37e06bd9
      antirez 提交于
      There was a bug that over-esteemed the amount of backlog available,
      however this could only happen when a slave was asking for an offset
      that was in the "future" compared to the master replication backlog.
      
      Now this case is handled well and logged as an incident in the master
      log file.
      37e06bd9
  8. 03 10月, 2013 1 次提交
    • A
      Cluster: new clusterDoBeforeSleep() API. · 7afc0dd5
      antirez 提交于
      The new API is able to remember operations to perform before returning
      to the event loop, such as checking if there is the failover quorum for
      a slave, save and fsync the configuraiton file, and so forth.
      
      Because this operations are performed before returning on the event
      loop we are sure that messages that are sent in the same event loop run
      will be delivered *after* the configuration is already saved, that is a
      requirement sometimes. For instance we want to publish a new epoch only
      when it is already stored in nodes.conf in order to avoid returning back
      in the logical clock when a node is restarted.
      
      This new API provides a big performance advantage compared to saving and
      possibly fsyncing the configuration file multiple times in the same
      event loop run, especially in the case of big clusters with tens or
      hundreds of nodes.
      7afc0dd5
  9. 02 10月, 2013 1 次提交