- 01 Dec, 2017 7 commits
- 
- 
antirez authored
- 
antirez authored
- 
antirez authored
- 
antirez authoredAfter a few attempts it looked quite saner to just add the last item ID at the end of the serialized listpacks, instead of scanning the last listpack loaded from head to tail just to fetch it. It's a disk space VS CPU-and-simplicity tradeoff basically. 
- 
antirez authored
- 
antirez authored
- 
antirez authored
 
- 
- 30 Nov, 2017 6 commits
- 
- 
antirez authored
- 
antirez authoredRelated to #4483. As suggested by @soloestoy, we can retrieve the SHA1 from the body. Given that in the new implementation using AUX fields we ended copying around a lot to create new objects and strings, extremize such concept and trade CPU for space inside the RDB file. 
- 
antirez authoredSee #4483. This is needed because luaCreateFunction() is now called from RDB loading code outside a client context. 
- 
antirez authoredThis is currently needed in order to fix #4483, but this can be useful in other contexts, so maybe later we may want to remove the conditionals and always save/load scripts. Note that we are using the "lua" AUX field here, in order to guarantee backward compatibility of the RDB file. The unknown AUX fields must be discarded by past versions of Redis. 
- 
antirez authoredDoing the following ended with a broken server.executable: 1. Start Redis with src/redis-server 2. Send CONFIG SET DIR /tmp/ 3. Send DEBUG RESTART At this point we called execve with an argv[0] that is no longer related to the new path. So after the restart the absolute path of the executable is recomputed in the wrong way. With this fix we pass the absolute path already computed as argv[0]. 
- 
antirez authored
 
- 
- 28 Nov, 2017 3 commits
- 
- 
antirez authored
- 
antirez authoredSee #4192, the original PR removed lines of code that are actually needed, so thanks to @chunqiulfq for reporting the problem, but merging solution from @jeesyn after checking, together with @artix75, that the logic covers all the cases. 
- 
antirez authoredSplitting the popularity in half actually just needs decrementing the counter because the counter is logarithmic. 
 
- 
- 27 Nov, 2017 7 commits
- 
- 
zhaozhao.zz authored
- 
zhaozhao.zz authoredFirstly, use access time to replace the decreas time of LFU. For function LFUDecrAndReturn, it should only try to get decremented counter, not update LFU fields, we will update it in an explicit way. And we will times halve the counter according to the times of elapsed time than server.lfu_decay_time. Everytime a key is accessed, we should update the LFU including update access time, and increment the counter after call function LFUDecrAndReturn. If a key is overwritten, the LFU should be also updated. Then we can use `OBJECT freq` command to get a key's frequence, and LFUDecrAndReturn should be called in `OBJECT freq` command in case of the key has not been accessed for a long time, because we update the access time only when the key is read or overwritten. 
- 
zhaozhao.zz authored
- 
zhaozhao.zz authored
- 
antirez authoredSee #4472. 
- 
antirez authoredAfter #4472 the command may have just 2 arguments. 
- 
Itamar Haber authored
 
- 
- 24 Nov, 2017 4 commits
- 
- 
Itamar Haber authored
- 
Itamar Haber authoredWhen maxmemory is set to noeviction, idletime is implicitly kept. This renders access frequency nonsensical. 
- 
antirez authored
- 
antirez authoredRelated to PR #4412 and issue #4407. 
 
- 
- 23 Nov, 2017 2 commits
- 
- 
Oran Agra authoredgetLongLongFromObject calls string2ll which has this line: /* Return if not all bytes were used. */ so if you pass an sds with 3 characters "1\01" it will fail. but getLongDoubleFromObject calls strtold, and considers it ok if eptr[0]==`\0` i.e. if the end of the string found by strtold ends with null terminator 127.0.0.1:6379> set a 1 OK 127.0.0.1:6379> setrange a 2 2 (integer) 3 127.0.0.1:6379> get a "1\x002" 127.0.0.1:6379> incrbyfloat a 2 "3" 127.0.0.1:6379> get a "3" 
- 
antirez authoredSee issue #4466 / #4467. 
 
- 
- 22 Nov, 2017 3 commits
- 
- 
Yossi Gottlieb authoredFor example: 1. A module command called within a MULTI section. 2. A Lua script with replicate_commands() called within a MULTI section. 3. A module command called from a Lua script in the above context. 
- 
zhaozhao.zz authored
- 
zhaozhao.zz authoredit means that after this change all the replication info in RDB is valid, and it can distinguish us from the older version. 
 
- 
- 21 Nov, 2017 2 commits
- 
- 
zhaozhao.zz authored
- 
zhaozhao.zz authored
 
- 
- 19 Nov, 2017 1 commit
- 
- 
David Carlier authored
 
- 
- 08 Nov, 2017 1 commit
- 
- 
Itamar Haber authoredFixes #4430 
 
- 
- 06 Nov, 2017 1 commit
- 
- 
antirez authoredNormally in modern Redis you can't create zero-len lists, however it's possible to load them from old RDB files generated, for instance, using Redis 2.8 (see issue #4409). The "Right Thing" would be not loading such lists at all, but this requires to hook in rdb.c random places in a not great way, for a problem that is at this point, at best, minor. Here in this commit instead I just fix the fact that zero length lists, materialized as quicklists with the first node set to NULL, were iterated in the wrong way while they are saved, leading to a crash. The other parts of the list implementation are apparently able to deal with empty lists correctly, even if they are no longer a thing. 
 
- 
- 03 Nov, 2017 1 commit
- 
- 
antirez authoredSince SDS v2, we no longer have a single header, so the function to rewrite the SDS in terms of the minimum space required, instead of just using realloc() and let the underlying allocator decide what to do, was doing an allocation + copy every time the minimum possible header needed to represent the string was different than the current one. This could be often a bit wasteful, because if we go, for instance, from the 32 bit fields header to the 16 bit fields header, the overhead of the header is normally very small. With this commit we call realloc instead, unless the change in header size is very significant in relation to the string length. 
 
- 
- 02 Nov, 2017 1 commit
- 
- 
zhaozhao.zz authored
 
- 
- 01 Nov, 2017 1 commit
- 
- 
zhaozhao.zz authored
 
-