- 14 Mar, 2019 3 commits
-
-
antirez authored
Based on ideas and code in PR #5560 by @MeirShpilraien.
-
antirez authored
-
MeirShpilraien authored
-
- 12 Dec, 2018 1 commit
-
-
antirez authored
Related to issue #5686 and PR #5689.
-
- 11 Dec, 2018 2 commits
-
-
antirez authored
Thanks to @soloestoy for discovering this issue in #5667. This is an alternative fix in order to avoid both cycling the clients and also disconnecting clients just having valid read-only transactions pending.
-
Oran Agra authored
these metrics become negative when RSS is smaller than the used_memory. This can easily happen when the program allocated a lot of memory and haven't written to it yet, in which case the kernel doesn't allocate any pages to the process
-
- 17 Oct, 2018 2 commits
-
-
antirez authored
Keep vanilla stream commands at toplevel, see #5426.
-
zhaozhao.zz authored
XSTREAM CREATE <key> <id or *> -- Create a new empty stream. XSTREAM SETID <key> <id or $> -- Set the current stream ID.
-
- 15 Oct, 2018 1 commit
-
-
antirez authored
Issue #5433.
-
- 09 Oct, 2018 1 commit
-
-
antirez authored
The idea is to have an API for the cases like -BUSY state and DEBUG RELOAD where we have to manually deinstall the read handler. See #4804.
-
- 03 Oct, 2018 1 commit
-
-
antirez authored
-
- 14 Sep, 2018 2 commits
- 04 Sep, 2018 2 commits
- 29 Aug, 2018 3 commits
-
-
antirez authored
Note: this breaks backward compatibility with Redis 4, since now slaves by default are exact copies of masters and do not try to evict keys independently.
-
zhaozhao.zz authored
-
zhaozhao.zz authored
This is an optimization for processing pipeline, we discussed a problem in issue #5229: clients may be paused if we apply `CLIENT PAUSE` command, and then querybuf may grow too large, the cost of memmove in sdsrange after parsing a completed command will be horrible. The optimization is that parsing all commands in queyrbuf , after that we can just call sdsrange only once.
-
- 02 Aug, 2018 2 commits
-
-
zhaozhao.zz authored
-
antirez authored
-
- 30 Jul, 2018 3 commits
- 23 Jul, 2018 2 commits
-
-
Itamar Haber authored
-
Itamar Haber authored
Implementation notes: as INFO is "already broken", I didn't want to break it further. Instead of computing the server.lua_script dict size on every call, I'm keeping a running sum of the body's length and dict overheads. This implementation is naive as it **does not** take into consideration dict rehashing, but that inaccuracy pays off in speed ;) Demo time: ```bash $ redis-cli info memory | grep "script" used_memory_scripts:96 used_memory_scripts_human:96B number_of_cached_scripts:0 $ redis-cli eval "" 0 ; redis-cli info memory | grep "script" (nil) used_memory_scripts:120 used_memory_scripts_human:120B number_of_cached_scripts:1 $ redis-cli script flush ; redis-cli info memory | grep "script" OK used_memory_scripts:96 used_memory_scripts_human:96B number_of_cached_scripts:0 $ redis-cli eval "return('Hello, Script Cache :)')" 0 ; redis-cli info memory | grep "script" "Hello, Script Cache :)" used_memory_scripts:152 used_memory_scripts_human:152B number_of_cached_scripts:1 $ redis-cli eval "return redis.sha1hex(\"return('Hello, Script Cache :)')\")" 0 ; redis-cli info memory | grep "script" "1be72729d43da5114929c1260a749073732dc822" used_memory_scripts:232 used_memory_scripts_human:232B number_of_cached_scripts:2
✔ 19:03:54 redis [lua_scripts-in-info-memory L ✚…⚑] $ redis-cli evalsha 1be72729d43da5114929c1260a749073732dc822 0 "Hello, Script Cache :)" ```
-
- 16 Jul, 2018 2 commits
-
-
antirez authored
Reading the PR gave me the opportunity to better specify what the code was doing in places where I was not immediately sure about what was going on. Moreover I documented the structure in server.h so that people reading the header file will immediately understand what the structure is useful for.
-
Oran Agra authored
A) slave buffers didn't count internal fragmentation and sds unused space, this caused them to induce eviction although we didn't mean for it. B) slave buffers were consuming about twice the memory of what they actually needed. - this was mainly due to sdsMakeRoomFor growing to twice as much as needed each time but networking.c not storing more than 16k (partially fixed recently in 237a38737). - besides it wasn't able to store half of the new string into one buffer and the other half into the next (so the above mentioned fix helped mainly for small items). - lastly, the sds buffers had up to 30% internal fragmentation that was wasted, consumed but not used. C) inefficient performance due to starting from a small string and reallocing many times. what i changed: - creating dedicated buffers for reply list, counting their size with zmalloc_size - when creating a new reply node from, preallocate it to at least 16k. - when appending a new reply to the buffer, first fill all the unused space of the previous node before starting a new one. other changes: - expose mem_not_counted_for_evict info field for the benefit of the test suite - add a test to make sure slave buffers are counted correctly and that they don't cause eviction
-
- 09 Jul, 2018 1 commit
-
-
dejun.xdj authored
Save NOACK option into client.blockingState structure.
-
- 04 Jul, 2018 1 commit
-
-
antirez authored
With such information will be able to use a private localtime() implementation serverLog(), which does not use any locking and is both thread and fork() safe.
-
- 03 Jul, 2018 2 commits
-
-
Jack Drogon authored
-
antirez authored
-
- 02 Jul, 2018 1 commit
-
-
antirez authored
-
- 01 Jul, 2018 1 commit
-
-
chendianqiang authored
-
- 28 Jun, 2018 1 commit
-
-
zhaozhao.zz authored
-
- 27 Jun, 2018 1 commit
-
-
antirez authored
-
- 20 Jun, 2018 1 commit
-
-
Guy Benoish authored
RESTORE now supports: 1. Setting LRU/LFU 2. Absolute-time TTL Other related changes: 1. RDB loading will not override LRU bits when RDB file does not contain the LRU opcode. 2. RDB loading will not set LRU/LFU bits if the server's maxmemory-policy does not match.
-
- 19 Jun, 2018 1 commit
-
-
Oran Agra authored
this reduces the extra 8 bytes we save before each pointer. but more importantly maybe, it makes the valgrind runs to be more similiar to our normal runs. note: the change in malloc_stats struct in server.h is to eliminate an name conflict. structs that are not typedefed are resolved from a separate name space.
-
- 18 Jun, 2018 1 commit
-
-
antirez authored
-
- 12 Jun, 2018 2 commits
-
-
antirez authored
Also add the concept of size/items limit, instead of just having as limit the number of bytes.
-
zhaozhao.zz authored
-