1. 14 Sep, 2016 4 commits
    • antirez's avatar
      dict.c: dictReplaceRaw() -> dictAddOrFind(). · 09a50d34
      antirez authored
      What they say about "naming things" in programming?
      09a50d34
    • antirez's avatar
      Trim comment to 80 cols. · 041ab044
      antirez authored
      041ab044
    • antirez's avatar
      Apply the new dictUnlink() where possible. · a636aeac
      antirez authored
      Optimizations suggested and originally implemented by @oranagra.
      Re-applied by @antirez using the modified API.
      a636aeac
    • oranagra's avatar
      dict.c: introduce dictUnlink(). · afcbcc0e
      oranagra authored
      Notes by @antirez:
      
      This patch was picked from a larger commit by Oran and adapted to change
      the API a bit. The basic idea is to avoid double lookups when there is
      to use the value of the deleted entry.
      
      BEFORE:
      
          entry = dictFind( ... ); /* 1st lookup. */
          /* Do somethjing with the entry. */
          dictDelete(...);         /* 2nd lookup. */
      
      AFTER:
      
          entry = dictUnlink( ... ); /* 1st lookup. */
          /* Do somethjing with the entry. */
          dictFreeUnlinkedEntry(entry); /* No lookups!. */
      afcbcc0e
  2. 13 Sep, 2016 2 commits
    • antirez's avatar
      MEMORY OVERHEAD implemented (using Oran Agra initial implementation). · 8c84c962
      antirez authored
      This code was extracted from @oranagra PR #3223 and modified in order
      to provide only certain amounts of information compared to the original
      code. It was also moved from DEBUG to the newly introduced MEMORY
      command. Thanks to Oran for the implementation and the PR.
      
      It implements detailed memory usage stats that can be useful in both
      provisioning and troubleshooting memory usage in Redis.
      8c84c962
    • antirez's avatar
      objectComputeSize(): estimate collections sampling N elements. · 89dec692
      antirez authored
      For most tasks, we need the memory estimation to be O(1) by default.
      This commit also implements an initial MEMORY command.
      Note that objectComputeSize() takes the number of samples to check as
      argument, so MEMORY should be able to get the sample size as option
      to make precision VS CPU tradeoff tunable.
      
      Related to: PR #3223.
      89dec692
  3. 12 Sep, 2016 2 commits
  4. 09 Sep, 2016 9 commits
  5. 08 Sep, 2016 1 commit
  6. 07 Sep, 2016 6 commits
  7. 01 Sep, 2016 2 commits
  8. 24 Aug, 2016 2 commits
  9. 11 Aug, 2016 3 commits
  10. 09 Aug, 2016 2 commits
  11. 05 Aug, 2016 1 commit
  12. 04 Aug, 2016 2 commits
  13. 03 Aug, 2016 4 commits
    • antirez's avatar
      Modules: basic call/reply tests in test module. · e7f17981
      antirez authored
      e7f17981
    • antirez's avatar
      Modules: handle NULL replies more gracefully. · 13f18d2b
      antirez authored
      After all crashing at every API misuse makes everybody's life more
      complex.
      13f18d2b
    • antirez's avatar
      Security: Cross Protocol Scripting protection. · a81a92ca
      antirez authored
      This is an attempt at mitigating problems due to cross protocol
      scripting, an attack targeting services using line oriented protocols
      like Redis that can accept HTTP requests as valid protocol, by
      discarding the invalid parts and accepting the payloads sent, for
      example, via a POST request.
      
      For this to be effective, when we detect POST and Host: and terminate
      the connection asynchronously, the networking code was modified in order
      to never process further input. It was later verified that in a
      pipelined request containing a POST command, the successive commands are
      not executed.
      a81a92ca
    • antirez's avatar
      Fix comment over 80 cols. · ede6e22c
      antirez authored
      ede6e22c