1. 29 Sep, 2014 3 commits
    • Matt Stancliff's avatar
      Clean up text throughout project · 12d0195b
      Matt Stancliff authored
        - Remove trailing newlines from redis.conf
        - Fix comment misspelling
        - Clarifies zipEncodeLength usage and a C API mention (#1243, #1242)
        - Fix cluster typos (inspired by @papanikge #1507)
        - Fix rewite -> rewrite in a few places (inspired by #682)
      
      Closes #1243, #1242, #1507
      12d0195b
    • zionwu's avatar
      Fix incorrect comments · a2583466
      zionwu authored
      error != success; and 0 != number of bytes written
      
      Closes #1806
      a2583466
    • Jan-Erik Rediger's avatar
      Fix many small typos · 0cb87481
      Jan-Erik Rediger authored
      Closes #1871
      0cb87481
  2. 16 Sep, 2014 2 commits
    • antirez's avatar
      Seek at the end of AOF after truncate call. · 878c089e
      antirez authored
      It is not clear if files open in append only mode will automatically fix
      their offset after a truncate(2) operation. This commit makes sure that
      we reposition the AOF file descriptor offset at the end of the file
      after a truncated AOF is loaded and trimmed to the last valid command.
      878c089e
    • antirez's avatar
      On AOF end of file, truncate the AOF to last valid command. · 0ba8fe1a
      antirez authored
      Recently we introduced the ability to load truncated AOFs, but
      unfortuantely the support was broken since the server, after loading the
      truncated AOF, continues appending to the file that is corrupted at the
      end. The problem is fixed only in the next AOF rewrite.
      
      This commit fixes the issue by truncating the AOF to the last valid
      opcode, and aborting if it is not possible to truncate the file
      correctly.
      0ba8fe1a
  3. 08 Sep, 2014 3 commits
  4. 13 Aug, 2014 1 commit
  5. 08 Jul, 2014 1 commit
  6. 05 Jul, 2014 2 commits
  7. 04 Jul, 2014 8 commits
  8. 02 Jul, 2014 2 commits
  9. 01 Jul, 2014 1 commit
  10. 28 Apr, 2014 1 commit
    • antirez's avatar
      CLIENT LIST speedup via peerid caching + smart allocation. · 0bcc7cb4
      antirez authored
      This commit adds peer ID caching in the client structure plus an API
      change and the use of sdsMakeRoomFor() in order to improve the
      reallocation pattern to generate the CLIENT LIST output.
      
      Both the changes account for a very significant speedup.
      0bcc7cb4
  11. 24 Apr, 2014 1 commit
    • antirez's avatar
      Process events with processEventsWhileBlocked() when blocked. · e29d3307
      antirez authored
      When we are blocked and a few events a processed from time to time, it
      is smarter to call the event handler a few times in order to handle the
      accept, read, write, close cycle of a client in a single pass, otherwise
      there is too much latency added for clients to receive a reply while the
      server is busy in some way (for example during the DB loading).
      e29d3307
  12. 24 Mar, 2014 1 commit
    • Matt Stancliff's avatar
      Fix data loss when save AOF/RDB with no free space · b47b343f
      Matt Stancliff authored
      Previously, the (!fp) would only catch lack of free space
      under OS X.  Linux waits to discover it can't write until
      it actually writes contents to disk.
      
      (fwrite() returns success even if the underlying file
      has no free space to write into.  All the errors
      only show up at flush/sync/close time.)
      
      Fixes antirez/redis#1604
      b47b343f
  13. 12 Feb, 2014 1 commit
    • antirez's avatar
      AOF: don't abort on write errors unless fsync is 'always'. · fe835254
      antirez authored
      A system similar to the RDB write error handling is used, in which when
      we can't write to the AOF file, writes are no longer accepted until we
      are able to write again.
      
      For fsync == always we still abort on errors since there is currently no
      easy way to avoid replying with success to the user otherwise, and this
      would violate the contract with the user of only acknowledging data
      already secured on disk.
      fe835254
  14. 14 Jan, 2014 1 commit
  15. 05 Dec, 2013 1 commit
  16. 03 Dec, 2013 1 commit
  17. 20 Aug, 2013 1 commit
  18. 22 Jul, 2013 1 commit
    • antirez's avatar
      Introduction of a new string encoding: EMBSTR · 894eba07
      antirez authored
      Previously two string encodings were used for string objects:
      
      1) REDIS_ENCODING_RAW: a string object with obj->ptr pointing to an sds
      stirng.
      
      2) REDIS_ENCODING_INT: a string object where the obj->ptr void pointer
      is casted to a long.
      
      This commit introduces a experimental new encoding called
      REDIS_ENCODING_EMBSTR that implements an object represented by an sds
      string that is not modifiable but allocated in the same memory chunk as
      the robj structure itself.
      
      The chunk looks like the following:
      
      +--------------+-----------+------------+--------+----+
      | robj data... | robj->ptr | sds header | string | \0 |
      +--------------+-----+-----+------------+--------+----+
                           |                       ^
                           +-----------------------+
      
      The robj->ptr points to the contiguous sds string data, so the object
      can be manipulated with the same functions used to manipulate plan
      string objects, however we need just on malloc and one free in order to
      allocate or release this kind of objects. Moreover it has better cache
      locality.
      
      This new allocation strategy should benefit both the memory usage and
      the performances. A performance gain between 60 and 70% was observed
      during micro-benchmarks, however there is more work to do to evaluate
      the performance impact and the memory usage behavior.
      894eba07
  19. 05 Jul, 2013 1 commit
  20. 24 Jun, 2013 1 commit
  21. 02 May, 2013 1 commit
  22. 24 Apr, 2013 2 commits
  23. 27 Feb, 2013 1 commit
  24. 26 Feb, 2013 1 commit
    • antirez's avatar
      Set process name in ps output to make operations safer. · 6356cf68
      antirez authored
      This commit allows Redis to set a process name that includes the binding
      address and the port number in order to make operations simpler.
      
      Redis children processes doing AOF rewrites or RDB saving change the
      name into redis-aof-rewrite and redis-rdb-bgsave respectively.
      
      This in general makes harder to kill the wrong process because of an
      error and makes simpler to identify saving children.
      
      This feature was suggested by Arnaud GRANAL in the Redis Google Group,
      Arnaud also pointed me to the setproctitle.c implementation includeed in
      this commit.
      
      This feature should work on all the Linux, OSX, and all the three major
      BSD systems.
      6356cf68
  25. 28 Jan, 2013 1 commit
    • antirez's avatar
      Fix decrRefCount() prototype from void to robj pointer. · 8766e810
      antirez authored
      decrRefCount used to get its argument as a void* pointer in order to be
      used as destructor where a 'void free_object(void*)' prototype is
      expected. However this made simpler to introduce bugs by freeing the
      wrong pointer. This commit fixes the argument type and introduces a new
      wrapper called decrRefCountVoid() that can be used when the void*
      argument is needed.
      8766e810