1. 04 Oct, 2019 1 commit
  2. 12 Sep, 2019 1 commit
  3. 07 Jul, 2019 1 commit
  4. 29 Jun, 2019 1 commit
  5. 07 May, 2019 1 commit
  6. 06 May, 2019 1 commit
  7. 07 Mar, 2019 1 commit
    • Brad Solomon's avatar
      Provide an uninstall target in Makefile · d5b24d31
      Brad Solomon authored
      On `make uninstall`, removes:
      
      - /usr/local/bin/redis-benchmark
      - /usr/local/bin/redis-check-aof
      - /usr/local/bin/redis-check-rdb
      - /usr/local/bin/redis-cli
      - /usr/local/bin/redis-sentinel
      - /usr/local/bin/redis-server
      
      (Only the src/ versions are removed in `make clean`)
      d5b24d31
  8. 01 Mar, 2019 1 commit
  9. 21 Feb, 2019 1 commit
  10. 09 Jan, 2019 1 commit
  11. 25 Nov, 2018 2 commits
  12. 11 Nov, 2018 1 commit
  13. 08 Nov, 2018 1 commit
  14. 31 Oct, 2018 1 commit
  15. 30 Oct, 2018 3 commits
  16. 19 Oct, 2018 1 commit
  17. 14 Sep, 2018 1 commit
  18. 12 Sep, 2018 1 commit
  19. 04 Jul, 2018 1 commit
  20. 25 May, 2018 2 commits
  21. 23 Apr, 2018 2 commits
  22. 10 Apr, 2018 1 commit
  23. 15 Mar, 2018 1 commit
  24. 22 Feb, 2018 1 commit
  25. 01 Dec, 2017 1 commit
  26. 10 Jul, 2017 1 commit
  27. 05 Jul, 2017 1 commit
  28. 03 Jul, 2017 1 commit
  29. 26 Jun, 2017 1 commit
  30. 10 May, 2017 1 commit
    • antirez's avatar
      Modules TSC: use atomic var for server.unixtime. · 1f598fc2
      antirez authored
      This avoids Helgrind complaining, but we are actually not using
      atomicGet() to get the unixtime value for now: too many places where it
      is used and given tha time_t is word-sized it should be safe in all the
      archs we support as it is.
      
      On the other hand, Helgrind, when Redis is compiled with "make helgrind"
      in order to force the __sync macros, will detect the write in
      updateCachedTime() as a read (because atomic functions are used) and
      will not complain about races.
      
      This commit also includes minor refactoring of mutex initializations and
      a "helgrind" target in the Makefile.
      1f598fc2
  31. 17 Apr, 2017 1 commit
  32. 27 Mar, 2017 1 commit
  33. 23 Feb, 2017 1 commit
  34. 20 Feb, 2017 2 commits
    • antirez's avatar
      84fa8230
    • antirez's avatar
      Use SipHash hash function to mitigate HashDos attempts. · adeed29a
      antirez authored
      This change attempts to switch to an hash function which mitigates
      the effects of the HashDoS attack (denial of service attack trying
      to force data structures to worst case behavior) while at the same time
      providing Redis with an hash function that does not expect the input
      data to be word aligned, a condition no longer true now that sds.c
      strings have a varialbe length header.
      
      Note that it is possible sometimes that even using an hash function
      for which collisions cannot be generated without knowing the seed,
      special implementation details or the exposure of the seed in an
      indirect way (for example the ability to add elements to a Set and
      check the return in which Redis returns them with SMEMBERS) may
      make the attacker's life simpler in the process of trying to guess
      the correct seed, however the next step would be to switch to a
      log(N) data structure when too many items in a single bucket are
      detected: this seems like an overkill in the case of Redis.
      
      SPEED REGRESION TESTS:
      
      In order to verify that switching from MurmurHash to SipHash had
      no impact on speed, a set of benchmarks involving fast insertion
      of 5 million of keys were performed.
      
      The result shows Redis with SipHash in high pipelining conditions
      to be about 4% slower compared to using the previous hash function.
      However this could partially be related to the fact that the current
      implementation does not attempt to hash whole words at a time but
      reads single bytes, in order to have an output which is endian-netural
      and at the same time working on systems where unaligned memory accesses
      are a problem.
      
      Further X86 specific optimizations should be tested, the function
      may easily get at the same level of MurMurHash2 if a few optimizations
      are performed.
      adeed29a