1. 10 Dec, 2013 1 commit
    • antirez's avatar
      dict.c: added optional callback to dictEmpty(). · 2eb781b3
      antirez authored
      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
  2. 06 Dec, 2013 2 commits
    • antirez's avatar
      Sentinel: fix reported role info sampling. · c590549e
      antirez authored
      The way the role change was recoded was not sane and too much
      convoluted, causing the role information to be not always updated.
      
      This commit fixes issue #1445.
      c590549e
    • antirez's avatar
      Sentinel: fix reported role fields when master is reset. · 2b414a4b
      antirez authored
      When there is a master address switch, the reported role must be set to
      master so that we have a chance to re-sample the INFO output to check if
      the new address is reporting the right role.
      
      Otherwise if the role was wrong, it will be sensed as wrong even after
      the address switch, and for enough time according to the role change
      time, for Sentinel consider the master SDOWN.
      
      This fixes isue #1446, that describes the effects of this bug in
      practice.
      2b414a4b
  3. 05 Dec, 2013 1 commit
  4. 02 Dec, 2013 2 commits
    • antirez's avatar
      Sentinel: don't write HZ when flushing config. · f80cf736
      antirez authored
      See issue #1419.
      f80cf736
    • antirez's avatar
      Sentinel: better time desynchronization. · dffebbc9
      antirez authored
      Sentinels are now desynchronized in a better way changing the time
      handler frequency between 10 and 20 HZ. This way on average a
      desynchronization of 25 milliesconds is produced that should be larger
      enough compared to network latency, avoiding most split-brain condition
      during the vote.
      
      Now that the clocks are desynchronized, to have larger random delays when
      performing operations can be easily achieved in the following way.
      Take as example the function that starts the failover, that is
      called with a frequency between 10 and 20 HZ and will start the
      failover every time there are the conditions. By just adding as an
      additional condition something like rand()%4 == 0, we can amplify the
      desynchronization between Sentinel instances easily.
      
      See issue #1419.
      dffebbc9
  5. 28 Nov, 2013 1 commit
  6. 26 Nov, 2013 1 commit
  7. 25 Nov, 2013 2 commits
  8. 21 Nov, 2013 7 commits
  9. 20 Nov, 2013 2 commits
  10. 19 Nov, 2013 11 commits
  11. 18 Nov, 2013 6 commits
  12. 14 Nov, 2013 3 commits
  13. 13 Nov, 2013 1 commit