- 22 Jul, 2013 1 commit
-
-
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.
-
- 15 Feb, 2013 1 commit
-
-
antirez authored
-
- 28 Jan, 2013 2 commits
-
-
antirez authored
When keyspace events are enabled, the overhead is not sever but noticeable, so this commit introduces the ability to select subclasses of events in order to avoid to generate events the user is not interested in. The events can be selected using redis.conf or CONFIG SET / GET.
-
antirez authored
-
- 08 Nov, 2012 1 commit
-
-
antirez authored
-
- 11 Jun, 2012 1 commit
-
-
antirez authored
The ziplist -> hashtable conversion code is triggered every time an hash value must be promoted to a full hash table because the number or size of elements reached the threshold. If a problem in the ziplist causes the same field to be present multiple times, the assertion of successful addition of the element inside the hash table will fail, crashing server with a failed assertion, but providing little information about the problem. This code adds a new logging function to perform the hex dump of binary data, and makes sure that the ziplist -> hashtable conversion code uses this new logging facility to dump the content of the ziplist when the assertion fails. This change was originally made in order to investigate issue #547.
-
- 23 Mar, 2012 1 commit
-
-
antirez authored
-
- 10 Mar, 2012 2 commits
- 21 Feb, 2012 1 commit
-
-
antirez authored
-
- 16 Feb, 2012 1 commit
-
-
antirez authored
-
- 04 Jan, 2012 1 commit
-
-
Pieter Noordhuis authored
To improve the performance of the ziplist implementation, some functions have been converted to macros to avoid unnecessary stack movement and duplicate variable assignments.
-
- 03 Jan, 2012 1 commit
-
-
Pieter Noordhuis authored
-
- 15 Nov, 2011 1 commit
-
-
antirez authored
-
- 08 Nov, 2011 1 commit
-
-
antirez authored
-
- 04 Oct, 2011 1 commit
-
-
antirez authored
-
- 27 Jul, 2011 1 commit
-
-
Pieter Noordhuis authored
-
- 19 Apr, 2011 1 commit
-
-
antirez authored
-
- 29 Dec, 2010 1 commit
-
-
antirez authored
touched key for WATCH refactored into a more general thing that can be used also for the cache system. Some more changes towards diskstore working.
-
- 14 Dec, 2010 2 commits
- 10 Dec, 2010 1 commit
-
-
antirez authored
HGET HMGET are now COW friendly, plus API refactoring and changes needed for the new implementation.
-
- 26 Oct, 2010 1 commit
-
-
Pieter Noordhuis authored
-
- 17 Oct, 2010 2 commits
-
-
Pieter Noordhuis authored
-
Pieter Noordhuis authored
-
- 02 Sep, 2010 3 commits
-
-
Pieter Noordhuis authored
-
Pieter Noordhuis authored
-
Pieter Noordhuis authored
-
- 30 Aug, 2010 1 commit
-
-
Pieter Noordhuis authored
-
- 12 Jul, 2010 1 commit
-
-
antirez authored
-
- 01 Jul, 2010 1 commit
-
-
antirez authored
networking related stuff moved into networking.c moved more code more work on layout of source code SDS instantaneuos memory saving. By Pieter and Salvatore at VMware ;) cleanly compiling again after the first split, now splitting it in more C files moving more things around... work in progress split replication code splitting more Sets split Hash split replication split even more splitting more splitting minor change
-