1. 29 5月, 2015 1 次提交
  2. 25 5月, 2015 1 次提交
    • T
      adding a sentinel command: "flushconfig" · 22ee2f9c
      therealbill 提交于
      This new command triggers a config flush to save the in-memory config to
      disk. This is useful for cases of a configuration management system or a
      package manager wiping out your sentinel config while the process is
      still running - and has not yet been restarted. It can also be useful
      for scripting a backup and migrate or clone of a running sentinel.
      22ee2f9c
  3. 19 5月, 2015 1 次提交
    • A
      Sentinel: SENTINEL CKQUORUM command · 76412ec9
      antirez 提交于
      A way for monitoring systems to check that Sentinel is technically able
      to reach the quorum and failover, using the currently visible Sentinels.
      76412ec9
  4. 15 5月, 2015 3 次提交
  5. 05 5月, 2015 1 次提交
  6. 04 5月, 2015 10 次提交
    • A
      Fix msi build · 9a8aade2
      Alexis Campailla 提交于
      9a8aade2
    • N
      Added redis.service.conf that turns on logging to the Windows event viewer.... · 23fdac78
      NickMRamirez 提交于
      Added redis.service.conf that turns on logging to the Windows event viewer. This required that we also log to a file with the logfile setting, otherwise messages are not written to the event viewer...probably a mishandling of Windows OS. The event viewer requires a messages resource in the form of a DLL, so I updated the Win32_Interop project to have a custom build step to compile EventLog.res into EventLog.dll. Updated the WiX project to create the Windows event source and also the directory where the event log file will be written.
      23fdac78
    • N
    • F
      sdsfree x and y · 8db39699
      FuGangqiang 提交于
      8db39699
    • F
      fix doc example · 98756d4c
      FuGangqiang 提交于
      98756d4c
    • F
      fix typo · 7316fda3
      FuGangqiang 提交于
      7316fda3
    • T
      Making sentinel flush config on +slave · f0ab4fd6
      therealbill 提交于
      Originally, only the +slave event which occurs when a slave is
      reconfigured during sentinelResetMasterAndChangeAddress triggers a flush
      of the config to disk.  However, newly discovered slaves don't
      apparently trigger this flush but do trigger the +slave event issuance.
      
      So if you start up a sentinel, add a master, then add a slave to the
      master (as a way to reproduce it) you'll see the +slave event issued,
      but the sentinel config won't be updated with the known-slave entry.
      
      This change makes sentinel do the flush of the config if a new slave is
      deteted in sentinelRefreshInstanceInfo.
      f0ab4fd6
    • A
      Sentinel: remove useless sentinelFlushConfig() call · e4c54498
      antirez 提交于
      To rewrite the config in the loop that adds slaves back after a master
      reset, in order to handle switching to another master, is useless: it
      just adds latency since there is an fsync call in the inner loop,
      without providing any additional guarantee, but the contrary, since if
      after the first loop iteration the server crashes we end with just a
      single slave entry losing all the other informations.
      
      It is wiser to rewrite the config at the end when the full new
      state is configured.
      e4c54498
    • Y
      81a8ebd7
    • C
      fix sentinel memory leak · c4d4c1ed
      clark.kang 提交于
      c4d4c1ed
  7. 01 5月, 2015 4 次提交
    • A
      Fix tabs in Win32_QFork.cpp · 05e0ac85
      Alexis Campailla 提交于
      05e0ac85
    • A
      Fix Windows version check · 0481910e
      Alexis Campailla 提交于
      Correclty check for Windows 8 version (6.2), in case this code
      path gets re-enabled again.
      Note that Windows 10 has version number 10.0, so it would finally
      take the code path originally intended for Windows 8 and higher.
      0481910e
    • A
      Disabling use of PAGE_REVERT_TO_FILE_MAP · 62416316
      Alexis Campailla 提交于
      VirtualProtect is failing with ERROR_INVALID_PARAMETER.
      It's possible that this code path never worked because it is
      checking for Windows version 8.0. Windows 8's version number is 6.2,
      not 8.0.
      
      Conflicts:
      	src/Win32_Interop/Win32_QFork.cpp
      62416316
    • A
      Qfork: RejoinCOWPages issue with swapping · 6076412a
      Alexis Campailla 提交于
      Fix for https://github.com/MSOpenTech/redis/issues/167
      
      RejoinCOWPages used to call QueryWorkingSetEx to figure out
      which pages had been dirtied since the memory map was protected
      with PAGE_WRITECOPY. But dirty pages that had been swapped out to
      the system page file would be reported as not valid
      (VirtualAttributes.Valid == 0) and so we wouldn't restore them into
      the file map.
      QueryWorkingSetEx only gives information about pages that are in the
      working set at the time it is called. Pages can be forced into the
      working set using VirtualLock, but that seems like a potentially
      risky / expensive solution.
      I implemented a solution that uses VirtualQuery to find out which
      regions have changed protection from PAGE_WRITECOPY.
      6076412a
  8. 27 4月, 2015 1 次提交
  9. 01 4月, 2015 1 次提交
    • O
      fixes to diskless replication. · c72253ec
      Oran Agra 提交于
      master was closing the connection if the RDB transfer took long time.
      and also sent PINGs to the slave before it got the initial ACK, in which case the slave wouldn't be able to find the EOF marker.
      c72253ec
  10. 24 3月, 2015 2 次提交
    • A
      Replication: disconnect blocked clients when switching to slave role. · 96aa6106
      antirez 提交于
      Bug as old as Redis and blocking operations. It's hard to trigger since
      only happens on instance role switch, but the results are quite bad
      since an inconsistency between master and slave is created.
      
      How to trigger the bug is a good description of the bug itself.
      
      1. Client does "BLPOP mylist 0" in master.
      2. Master is turned into slave, that replicates from New-Master.
      3. Client does "LPUSH mylist foo" in New-Master.
      4. New-Master propagates write to slave.
      5. Slave receives the LPUSH, the blocked client get served.
      
      Now Master "mylist" key has "foo", Slave "mylist" key is empty.
      
      Highlights:
      
      * At step "2" above, the client remains attached, basically escaping any
        check performed during command dispatch: read only slave, in that case.
      * At step "5" the slave (that was the master), serves the blocked client
        consuming a list element, which is not consumed on the master side.
      
      This scenario is technically likely to happen during failovers, however
      since Redis Sentinel already disconnects clients using the CLIENT
      command when changing the role of the instance, the bug is avoided in
      Sentinel deployments.
      
      Closes #2473.
      96aa6106
    • A
      fork: let child terminate without requiring signal from parent · 8c5b7fd2
      Alexis Campailla 提交于
      The quasi-fork child was waiting for an explicit signal from the parent
      before terminating. This synchronization step is unnecessary, and
      it makes the child hang if the parent terminates for any reason
      while the fork operation is in progress.
      In that scenario, and consistently with the Posix version, the child
      now completes the fork operation and terminates freely when done.
      
      This fixes https://github.com/MSOpenTech/redis/issues/228
      8c5b7fd2
  11. 09 3月, 2015 1 次提交
  12. 08 3月, 2015 1 次提交
  13. 05 3月, 2015 1 次提交
    • A
      Fix iterator for issue #2438. · f8f40afd
      antirez 提交于
      Itereator misuse due to analyzeLatencyForEvent() accessing the
      dictionary during the iteration, without the iterator being
      reclared as safe.
      f8f40afd
  14. 25 2月, 2015 3 次提交
  15. 24 2月, 2015 1 次提交
  16. 13 2月, 2015 1 次提交
  17. 10 2月, 2015 7 次提交