- 29 Jun, 2017 1 commit
-
-
antirez authored
This is the first step towards getting rid of HMSET which is a command that does not make much sense once HSET is variadic, and has a saner return value.
-
- 27 Jun, 2017 2 commits
-
-
Salvatore Sanfilippo authored
Fix Issues in blocking commands in cluster mode.
-
antirez authored
The original RDB serialization format was not parsable without the module loaded, becuase the structure was managed only by the module itself. Moreover RDB is a streaming protocol in the sense that it is both produce di an append-only fashion, and is also sometimes directly sent to the socket (in the case of diskless replication). The fact that modules values cannot be parsed without the relevant module loaded is a problem in many ways: RDB checking tools must have loaded modules even for doing things not involving the value at all, like splitting an RDB into N RDBs by key or alike, or just checking the RDB for sanity. In theory module values could be just a blob of data with a prefixed length in order for us to be able to skip it. However prefixing the values with a length would mean one of the following: 1. To be able to write some data at a previous offset. This breaks stremaing. 2. To bufferize values before outputting them. This breaks performances. 3. To have some chunked RDB output format. This breaks simplicity. Moreover, the above solution, still makes module values a totally opaque matter, with the fowllowing problems: 1. The RDB check tool can just skip the value without being able to at least check the general structure. For datasets composed mostly of modules values this means to just check the outer level of the RDB not actually doing any checko on most of the data itself. 2. It is not possible to do any recovering or processing of data for which a module no longer exists in the future, or is unknown. So this commit implements a different solution. The modules RDB serialization API is composed if well defined calls to store integers, floats, doubles or strings. After this commit, the parts generated by the module API have a one-byte prefix for each of the above emitted parts, and there is a final EOF byte as well. So even if we don't know exactly how to interpret a module value, we can always parse it at an high level, check the overall structure, understand the types used to store the information, and easily skip the whole value. The change is backward compatible: older RDB files can be still loaded since the new encoding has a new RDB type: MODULE_2 (of value 7). The commit also implements the ability to check RDB files for sanity taking advantage of the new feature.
-
- 26 Jun, 2017 1 commit
-
-
antirez authored
-
- 23 Jun, 2017 4 commits
-
-
antirez authored
It looks safer to return C_OK from freeMemoryIfNeeded() when clients are paused because returning C_ERR may prevent success of writes. It is possible that there is no difference in practice since clients cannot execute writes while clients are paused, but it looks more correct this way, at least conceptually. Related to PR #4028.
-
Salvatore Sanfilippo authored
Prevent expirations and evictions while paused
-
Suraj Narkhede authored
1. brpop last key index, thus checking all keys for slots. 2. Memory leak in clusterRedirectBlockedClientIfNeeded. 3. Remove while loop in clusterRedirectBlockedClientIfNeeded.
-
Suraj Narkhede authored
-
- 22 Jun, 2017 3 commits
-
-
antirez authored
1. Inline if ... statement if short. 2. No lines over 80 columns.
-
Salvatore Sanfilippo authored
Fix set with ex/px option when propagated to aof
-
xuzhou authored
-
- 20 Jun, 2017 4 commits
-
-
Salvatore Sanfilippo authored
Bugfix calc stat net output bytes
-
Salvatore Sanfilippo authored
Fixed comments of slowlog duration
-
Salvatore Sanfilippo authored
cli: Only print elapsed time on OUTPUT_STANDARD.
-
Salvatore Sanfilippo authored
(fix) Update create-cluster README
-
- 19 Jun, 2017 1 commit
-
-
antirez authored
-
- 16 Jun, 2017 2 commits
-
-
Aric Huang authored
Fix a few typos/adjust wording in `create-cluster` README
-
xuzhou authored
-
- 15 Jun, 2017 1 commit
-
-
antirez authored
-
- 14 Jun, 2017 3 commits
-
-
antirez authored
-
Qu Chen authored
commands.
-
xuchengxuan authored
-
- 13 Jun, 2017 3 commits
-
-
Salvatore Sanfilippo authored
Fixed comment in clusterMsg version field
-
Salvatore Sanfilippo authored
Removed duplicate 'sys/socket.h' include
-
antirez authored
-
- 04 Jun, 2017 2 commits
-
-
Antonio Mallia authored
-
Antonio Mallia authored
-
- 01 Jun, 2017 1 commit
-
-
Zachary Marquez authored
Proposed fix to https://github.com/antirez/redis/issues/4027
-
- 19 May, 2017 2 commits
- 15 May, 2017 1 commit
-
-
antirez authored
Close #3993.
-
- 10 May, 2017 3 commits
-
-
antirez authored
-
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.
-
antirez authored
The __sync builtin can be correctly detected by Helgrind so to force it is useful for testing. The API in the INFO output can be useful for debugging after problems are reported.
-
- 09 May, 2017 3 commits
- 04 May, 2017 2 commits
- 03 May, 2017 1 commit
-
-
antirez authored
-