9954 Commits

Author SHA1 Message Date
antirez
bb496e1429 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-05-04 11:09:32 +02:00
antirez
c729f17cd2 Fix NetBSD build by fixing redis_set_thread_title() support.
See #7188.
2020-05-04 11:09:02 +02:00
Salvatore Sanfilippo
a39bfa8c41 Merge pull request #7192 from hwware/trackingprefix
Client Side Caching: Add Number of Tracking Prefix Stats in Server Info
2020-05-04 11:06:44 +02:00
antirez
6bd5e0fb6c Rework a bit the documentation for CPU pinning. 2020-05-04 11:05:48 +02:00
antirez
28dd6356e1 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-05-04 10:57:20 +02:00
Salvatore Sanfilippo
de51f56d3d Merge pull request #7179 from bytedance/cpu-affinity
Support setcpuaffinity on linux/bsd
2020-05-04 10:56:20 +02:00
Salvatore Sanfilippo
696cfb214f Merge pull request #7190 from guybe7/fix_consumer_seen_time
XPENDING should not update consumer's seen-time
2020-05-04 10:50:22 +02:00
Guy Benoish
179dd08b2c XPENDING should not update consumer's seen-time
Same goes for XGROUP DELCONSUMER (But in this case, it doesn't
have any visible effect)
2020-05-04 11:40:42 +03:00
Salvatore Sanfilippo
ec11126819 Merge pull request #7176 from oranagra/fix-optimize-reply-buffer
optimize memory usage of deferred replies - fixed
2020-05-04 10:20:31 +02:00
Salvatore Sanfilippo
b19c82cbd6 Merge pull request #7191 from deliangyang/patch-1
reformat code
2020-05-04 10:14:24 +02:00
Salvatore Sanfilippo
466a826d6a Merge pull request #7184 from oranagra/nightly-actions
add daily github actions with libc malloc and valgrind, fix leaks and timing issues
2020-05-04 10:11:24 +02:00
Oran Agra
2b9d070df3 add daily github actions with libc malloc and valgrind
* fix memlry leaks with diskless replica short read.
* fix a few timing issues with valgrind runs
* fix issue with valgrind and watchdog schedule signal

about the valgrind WD issue:
the stack trace test in logging.tcl, has issues with valgrind:
==28808== Can't extend stack to 0x1ffeffdb38 during signal delivery for thread 1:
==28808==   too small or bad protection modes

it seems to be some valgrind bug with SA_ONSTACK.
SA_ONSTACK seems unneeded since WD is not recursive (SA_NODEFER was removed),
also, not sure if it's even valid without a call to sigaltstack()
2020-05-04 09:52:20 +03:00
Deliang Yang
14f21876ff reformat code 2020-05-04 01:57:38 +08:00
hwware
7a4e8aafc3 Client Side Caching: Add Tracking Prefix Number Stats in Server Info 2020-05-02 19:20:44 -04:00
zhenwei pi
2c853869bf Support setcpuaffinity on linux/bsd
Currently, there are several types of threads/child processes of a
redis server. Sometimes we need deeply optimise the performance of
redis, so we would like to isolate threads/processes.

There were some discussion about cpu affinity cases in the issue:
https://github.com/antirez/redis/issues/2863

So implement cpu affinity setting by redis.conf in this patch, then
we can config server_cpulist/bio_cpulist/aof_rewrite_cpulist/
bgsave_cpulist by cpu list.

Examples of cpulist in redis.conf:
server_cpulist 0-7:2      means cpu affinity 0,2,4,6
bio_cpulist 1,3           means cpu affinity 1,3
aof_rewrite_cpulist 8-11  means cpu affinity 8,9,10,11
bgsave_cpulist 1,10-11    means cpu affinity 1,10,11

Test on linux/freebsd, both work fine.

Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
2020-05-02 21:19:47 +08:00
Oran Agra
94943ad44b optimize memory usage of deferred replies - fixed
When deffered reply is added the previous reply node cannot be used so
all the extra space we allocated in it is wasted. in case someone uses
deffered replies in a loop, each time adding a small reply, each of
these reply nodes (the small string reply) would have consumed a 16k
block.
now when we add anther diferred reply node, we trim the unused portion
of the previous reply block.

see #7123

cherry picked from commit 4ed5b7cb74caf5bef6606909603e371af0da4f9b
with fix to handle a crash with LIBC allocator, which apparently can
return the same pointer despite changing it's size.
i.e. shrinking an allocation of 16k into 56 bytes without changing the
pointer.
2020-05-02 07:52:03 +03:00
Benjamin Sergeant
52a477c661 Update redis-cli.c 2020-05-01 20:57:51 -07:00
antirez
d3e39184c4 Cast printf() argument to the format specifier.
We could use uint64_t specific macros, but after all it's simpler to
just use an obvious equivalent type plus casting: this will be a no op
and is simpler than fixed size types printf macros.
2020-05-02 00:03:14 +02:00
antirez
a3c7ee6fa3 Revert "optimize memory usage of deferred replies"
This reverts commit 4ed5b7cb74caf5bef6606909603e371af0da4f9b.
2020-05-01 23:57:11 +02:00
antirez
4637c88845 Save a call to stopThreadedIOIfNeeded() for the base case.
Probably no performance changes, but the code should be trivial to
read as in "No threading? Use the normal function and return".
2020-05-01 18:45:51 +02:00
antirez
8bafad8621 Update help.h again before Redis 6 GA. 2020-04-30 13:43:05 +02:00
antirez
185884ec52 redis-cli: fix hints with subcommands. 2020-04-30 13:42:25 +02:00
antirez
3475f119e8 redis-cli command help updated. 2020-04-30 13:00:37 +02:00
Salvatore Sanfilippo
fb0dbb3783 Merge pull request #4838 from soloestoy/lazyfree-eviction
lazyfree & eviction: record latency generated by lazyfree eviction
2020-04-30 10:43:12 +02:00
antirez
80c5dc1247 MIGRATE AUTH2 for ACL support. 2020-04-30 10:14:15 +02:00
antirez
ccb24b9e16 CLIENT KILL USER <username>. 2020-04-30 09:58:06 +02:00
zhaozhao.zz
f55fc50dde lazyfree & eviction: record latency generated by lazyfree eviction
1. add eviction-lazyfree monitor
2. put eviction-del & eviction-lazyfree into eviction-cycle
   that means eviction-cycle contains all the latency in
   the eviction cycle including del and lazyfree
3. use getMaxmemoryState to check if we can break in lazyfree-evict
2020-04-30 15:54:14 +08:00
antirez
077dfaad72 Fix tracking table max keys option in redis.conf. 2020-04-29 18:49:42 +02:00
antirez
0e450be7cf redis-cli: safer cluster fix with unreachalbe masters. 2020-04-29 16:57:06 +02:00
antirez
ad291c381c redis-cli: simplify cluster nodes coverage display. 2020-04-29 16:33:47 +02:00
antirez
a9cc31e32e redis-cli: try to make clusterManagerFixOpenSlot() more readable.
Also improve the message to make clear that there is no *clear* owner,
not that there is no owner at all.
2020-04-29 12:37:47 +02:00
antirez
bfe8f56210 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-04-29 11:16:43 +02:00
antirez
e978e71402 Comment clearly why we moved some code in #6623. 2020-04-29 11:16:30 +02:00
srzhao
e9d4c24e01 fix pipelined WAIT performance issue.
If client gets blocked again in `processUnblockedClients`, redis will not send
`REPLCONF GETACK *` to slaves untill next eventloop, so the client will be
blocked for 100ms by default(10hz) if no other file event fired.

move server.get_ack_from_slaves sinppet after `processUnblockedClients`, so
that both the first WAIT command that puts client in blocked context and the
following WAIT command processed in processUnblockedClients would trigger
redis-sever to send `REPLCONF GETACK *`, so that the eventloop would get
`REPLCONG ACK <reploffset>` from slaves and unblocked ASAP.
2020-04-29 11:00:35 +02:00
Salvatore Sanfilippo
270c1f4d80 Merge pull request #7161 from guybe7/xinfo_full_count
XINFO STREAM FULL should have a default COUNT of 10
2020-04-28 17:19:31 +02:00
Guy Benoish
6544cf0f48 XINFO STREAM FULL should have a default COUNT of 10 2020-04-28 18:09:03 +03:00
antirez
9ec60a50c6 Fix create-cluster BIN_PATH. 2020-04-28 16:40:15 +02:00
Salvatore Sanfilippo
a8561470ca Merge pull request #7134 from guybe7/xstate_command
Extend XINFO STREAM output
2020-04-28 16:31:00 +02:00
Guy Benoish
b83ae07117 Extend XINFO STREAM output
Introducing XINFO STREAM <key> FULL
2020-04-28 13:03:43 +03:00
Salvatore Sanfilippo
8d821e61d8 Merge pull request #7101 from hwware/fixunusedmarco
Fix not used marco in cluster.c
2020-04-28 11:22:09 +02:00
Salvatore Sanfilippo
6d249b913e Merge pull request #6942 from itamarhaber/clustrutil-binpath
Adds `BIN_PATH` to create-cluster
2020-04-28 11:21:06 +02:00
Salvatore Sanfilippo
1b5bb23ef4 Merge pull request #7160 from oranagra/refix-get_decoded_object
hickup, re-fix dictEncObjKeyCompare
2020-04-28 11:19:28 +02:00
Oran Agra
3a8f8fa487 hickup, re-fix dictEncObjKeyCompare
come to think of it, in theory (not in practice), getDecodedObject can
return the same original object with refcount incremented, so the
pointer comparision in the previous commit was invalid.
so now instead of checking the encoding, we explicitly check the
refcount.
2020-04-28 12:14:46 +03:00
Salvatore Sanfilippo
e035346fe8 Merge pull request #7155 from oranagra/psync2_tests_race
fix loading race in psync2 tests
2020-04-28 10:04:47 +02:00
Oran Agra
a29e617381 fix loading race in psync2 tests 2020-04-28 09:18:01 +03:00
antirez
bee51ef883 Rework comment in dictEncObjKeyCompare(). 2020-04-27 22:40:15 +02:00
Salvatore Sanfilippo
94dcdaeaf0 Merge pull request #7152 from oranagra/dict_find_static_robj
allow dictFind using static robj
2020-04-27 22:36:51 +02:00
Oran Agra
9499903e56 allow dictFind using static robj
since the recent addition of OBJ_STATIC_REFCOUNT and the assertion in
incrRefCount it is now impossible to use dictFind using a static robj,
because dictEncObjKeyCompare will call getDecodedObject which tries to
increment the refcount just in order to decrement it later.
2020-04-27 23:17:19 +03:00
Salvatore Sanfilippo
9112fe9ebd Merge pull request #7148 from madolson/unstable-crc
Unstable crc
2020-04-27 17:29:13 +02:00
Salvatore Sanfilippo
81a368482a Merge pull request #7146 from oranagra/optimize_deferred_reply
optimize memory usage of deferred replies
2020-04-27 16:45:47 +02:00