- 19 Oct, 2021 1 commit
-
-
Wen Hui authored
Make Cluster-bus port configurable with new cluster-port config
-
- 18 Oct, 2021 5 commits
-
-
Viktor Söderqvist authored
The LRU of the key is not touched. Locically expired keys are logically not existing, so they're treated as such.
-
DarrenJiang13 authored
* add: add missed error counting in sentinel.c and cluster.c
-
yoav-steinberg authored
Test started failing consistently in 32bit builds after upgrading to jemalloc 5.2.1 (#9623).
-
Oran Agra authored
Upgraded to jemalloc 5.2.1 from 5.1.0. Cherry picked all relevant fixes (by diffing our 5.1.0 to upstream 5.10 and finding relevant commits). Details of what was done: [cherry-picked] fd7d51c3 2021-05-03 Resolve nonsense static analysis warnings (Oran Agra) [cherry-picked] 448c435b 2020-09-29 Fix compilation warnings in Lua and jemalloc dependencies (#7785) (YoongHM) [skipped - already in upstream] 9216b96b 2020-09-21 Fix compilation warning in jemalloc's malloc_vsnprintf (#7789) (YoongHM) [cherry-picked] 88d71f47 2020-05-20 fix a rare active defrag edge case bug leading to stagnation (Oran Agra) [skipped - already in upstream] 2fec7d9c 2019-05-30 Jemalloc: Avoid blocking on background thread lock for stats. [cherry-picked] 920158ec 2018-07-11 Active defrag fixes for 32bit builds (again) (Oran Agra) [cherry-picked] e8099cab 2018-06-26 add defrag hint support into jemalloc 5 (Oran Agra) [re-done] 4e729fcd 2018-05-24 Generate configure for Jemalloc. (antirez) Additionally had to do this: 7727cc2 2021-10-10 Fix defrag to support sharded bins in arena (added in v5.2.1) (Yoav Steinberg) When reviewing please look at all except the first commit which is just replacing 5.1.0 with 5.2.1 sources. Also I think we should merge this without squashing to preserve the changes we did to to jemalloc.
-
Oran Agra authored
in the past few days i've seen two failures in the valgrind daily test. *** [err]: slave fails full sync and diskless load swapdb recovers it in tests/integration/replication.tcl Replica didn't get into loading mode can't reproduce it, but i'm hoping it's just too slow (to start loading within 5 seconds)
-
- 17 Oct, 2021 4 commits
-
-
七飒 authored
there is no need to compare the value of ep and sp ``` sp = start = s; // the only way that make ep > sp is sdslen(s) == 0 // so when ep > sp,must exist ep-sp == -1 ep = end = s+sdslen(s)-1; while(sp <= end && strchr(cset, *sp)) sp++; while(ep > sp && strchr(cset, *ep)) ep--; // -1 + 1 already equals 0 len = (sp > ep) ? 0 : ((ep-sp)+1); ``` Signed-off-by:
Bo Cai <charpty@gmail.com>
-
Ilya Shipitsin authored
[src/bitops.c:512] -> [src/bitops.c:507]: (warning) Either the condition 'if(o&&o->encoding==1)' is redundant or there is possible null pointer dereference: o. This function has checks for `o` to be null or non-null, so it is odd that it accesses it first..
-
Hanna Fadida authored
This is useful for approximating size computation of complex module types. Note that the mem_usage2 callback is new and has not been released yet, which is why we can modify it.
-
Oran Agra authored
the RedisModule_ReplyWithPush prototype was merged by mistake (no such API yet)
-
- 16 Oct, 2021 1 commit
-
-
Yossi Gottlieb authored
* Fix test modules linking on macOS 11.x. * Use macOS 10.x for FreeBSD VM as VirtualBox is not yet supported on 11.
-
- 15 Oct, 2021 1 commit
-
-
guoxiang1996 authored
On MacOS calling fsync does not guarantee the cache on the disk itself is flushed.
-
- 14 Oct, 2021 1 commit
-
-
Shaya Potter authored
Verbatim Stings in RESP3 have a type/extension. The existing redismoule reply function, hard coded it to "txt".
-
- 13 Oct, 2021 2 commits
-
-
Ofir Luzon authored
Adding -i option (sleep interval) of repeat and bigkeys to redis-cli --scan. When the keyspace contains many already expired keys scanning the dataset with redis-cli --scan can impact the performance Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Madelyn Olson authored
Improved the reliability of cluster replica sync tests
-
- 12 Oct, 2021 6 commits
-
-
Ning Xie authored
bigkeys sleep is defined each 100 scanned keys, and it is checked it only between scan cycles. In cases that scan does not return exactly 10 keys it will never sleep. In addition the comment was sleep each 100 SCANs but it was 100 scanned keys.
-
Yossi Gottlieb authored
Cherry pick a more complete fix to 0215324a that also doesn't leak memory from latest hiredis.
-
Yoav Steinberg authored
-
Oran Agra authored
-
YoongHM authored
- The argument `u` in for `ar` is ignored (and generates warnings since `D` became the default. All it does is avoid updating unchanged objects (shouldn't have any impact on our build) - Enable `LUA_USE_MKSTEMP` to force the use of `mkstemp()` instead of `tmpname()` (which is dead code in redis anyway). - Remove unused variable `c` in `f_parser()` - Removed misleadingly indented space in `luaL_loadfile()` and ``addfield()` Co-authored-by:
Oran Agra <oran@redislabs.com>
-
Oran Agra authored
There's a rare case which leads to stagnation in the defragger, causing it to keep scanning the keyspace and do nothing (not moving any allocation), this happens when all the allocator slabs of a certain bin have the same % utilization, but the slab from which new allocations are made have a lower utilization. this commit fixes it by removing the current slab from the overall average utilization of the bin, and also eliminate any precision loss in the utilization calculation and move the decision about the defrag to reside inside jemalloc. and also add a test that consistently reproduce this issue.
-
- 11 Oct, 2021 2 commits
-
-
yoav-steinberg authored
When calling `XADD` with a predefined id (instead of `*`) there's no need to run the code which replaces the supplied id with itself. Only when we pass a wildcard id we need to do this. For apps which always supply their own id this is a slight optimization.
-
zhaozhao.zz authored
-
- 10 Oct, 2021 8 commits
-
-
Oran Agra authored
* overflow in jemalloc fragmentation hint to the defragger
-
Oran Agra authored
-
Yoav Steinberg authored
./autogen.sh --with-version=5.2.1-0-g0
-
Yoav Steinberg authored
-
Yoav Steinberg authored
git-subtree-dir: deps/jemalloc git-subtree-split: 886e40bb339ec1358a5ff2a52fdb782ca66461cb
-
Yoav Steinberg authored
-
menwen authored
looks like this field was never actually used and the call to time() is excessive.
- 08 Oct, 2021 2 commits
-
-
Bjorn Svensson authored
Move config `logfile` to generic configs
-
Bjorn Svensson authored
-
- 07 Oct, 2021 3 commits
-
-
yoav-steinberg authored
obuf based eviction tests run until eviction occurs instead of assuming a certain amount of writes will fill the obuf enough for eviction to occur. This handles the kernel buffering written data and emptying the obuf even though no one actualy reads from it. The tests have a new timeout of 20sec: if the test doesn't pass after 20 sec it'll fail. Hopefully this enough for our slow CI targets. This also eliminates the need to skip some tests in TLS.
-
Huang Zhw authored
Tracking invalidation messages were sometimes sent in inconsistent order, before the command's reply rather than after. In addition to that, they were sometimes embedded inside other commands responses, like MULTI-EXEC and MGET.
-
GutovskyMaria authored
Hide empty and loading replicas from CLUSTER SLOTS responses
-
- 06 Oct, 2021 4 commits
-
-
Andy Pan authored
Implement createPipe() to combine creating pipe and setting flags, also reduce system calls by prioritizing pipe2() over pipe(). Without createPipe(), we have to call pipe() to create a pipe and then call some functions (like anetCloexec() and anetNonBlock()) of anet.c to set flags respectively, which leads to some extra system calls, now we can leverage pipe2() to combine them and make the process of creating pipe more convergent in createPipe(). Co-authored-by:
Viktor Söderqvist <viktor.soderqvist@est.tech> Co-authored-by:
Oran Agra <oran@redislabs.com>
-
yoav-steinberg authored
Flush db and *then* wait for the bgsave to complete.
-
yoav-steinberg authored
When queuing a multi command we duplicated the argv (meaning an alloc and a memcpy). This isn't needed since we can use the previously allocated argv and just reset the client objects argv to NULL. This should saves some memory and is a minor optimization in heavy MULTI/EXEC traffic, especially if there are lots of arguments.
-
Meir Shpilraien (Spielrein) authored
The new value indicates how long Redis wait to acquire the GIL after sleep. This can help identify problems where a module perform some background operation for a long time (with the GIL held) and blocks the Redis main thread.
-