10405 Commits

Author SHA1 Message Date
antirez
8fe25edc75 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-02 00:04:19 +02:00
antirez
a07a4ada19 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
365316aa59 Revert "optimize memory usage of deferred replies"
This reverts commit fb732f7a944a4d4c90bb7375cb6030e88211f5aa.
2020-05-01 23:57:11 +02:00
antirez
fe980e2334 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
Diab Neiroukh
7ae66c0866 Clang requires libatomic to be linked via LDFLAGS
Clang requires the libatomic to be linked via LDFLAGS or else the linker
will fail to recognise __atomic macros.

An error as a result of not passing -latomic to the linker can be seen
below:

ld.lld: error: undefined symbol: __atomic_fetch_add_2
>>> referenced by sds.c:185
>>>               lto.tmp:(sdsdupshared)
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:276: keydb-server] Error 1
Former-commit-id: dcd7b684bbb7b4719a0e44d5764b01c48eb619dd
2020-04-30 15:06:10 -04:00
antirez
17dfd7cabb Redis 6.0.0 GA. 2020-04-30 15:04:41 +02:00
antirez
1f9b82bd56 Update help.h again before Redis 6 GA. 2020-04-30 13:43:58 +02:00
antirez
3fcffe7d04 redis-cli: fix hints with subcommands. 2020-04-30 13:43:58 +02:00
antirez
69ce235c7b Update help.h again before Redis 6 GA. 2020-04-30 13:43:05 +02:00
antirez
684c5907dd redis-cli: fix hints with subcommands. 2020-04-30 13:42:25 +02:00
antirez
455d8a05c1 redis-cli command help updated. 2020-04-30 13:02:59 +02:00
zhaozhao.zz
70287bbc94 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 13:02:59 +02:00
antirez
7be21139aa MIGRATE AUTH2 for ACL support. 2020-04-30 13:02:59 +02:00
antirez
e1ee1a49d6 CLIENT KILL USER <username>. 2020-04-30 13:02:59 +02:00
antirez
96dd5fc932 redis-cli: safer cluster fix with unreachalbe masters. 2020-04-30 13:02:58 +02:00
antirez
5b59d9c5d7 redis-cli: simplify cluster nodes coverage display. 2020-04-30 13:02:58 +02:00
antirez
c163d4addc 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-30 13:02:58 +02:00
Guy Benoish
aab74b7151 XINFO STREAM FULL should have a default COUNT of 10 2020-04-30 13:02:58 +02:00
antirez
606134f9de Comment clearly why we moved some code in #6623. 2020-04-30 13:02:58 +02:00
srzhao
ee627bb667 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-30 13:02:58 +02:00
Guy Benoish
6c0bc608a1 Extend XINFO STREAM output
Introducing XINFO STREAM <key> FULL
2020-04-30 13:02:58 +02:00
hwware
5bfc18950a Fix not used marco in cluster.c 2020-04-30 13:02:58 +02:00
antirez
6fcdf75325 redis-cli command help updated. 2020-04-30 13:00:37 +02:00
Salvatore Sanfilippo
15b040907c
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
058c727282 MIGRATE AUTH2 for ACL support. 2020-04-30 10:14:15 +02:00
antirez
cec388f208 CLIENT KILL USER <username>. 2020-04-30 09:58:06 +02:00
zhaozhao.zz
528ea98bd3 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
551fed3169 redis-cli: safer cluster fix with unreachalbe masters. 2020-04-29 16:57:06 +02:00
antirez
7c29c9eec1 redis-cli: simplify cluster nodes coverage display. 2020-04-29 16:33:47 +02:00
antirez
86a1386d6f 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
1a5c3a9a60 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-04-29 11:16:43 +02:00
antirez
d2a6c5ffa2 Comment clearly why we moved some code in #6623. 2020-04-29 11:16:30 +02:00
srzhao
4024bc7eee 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
John Sully
a1d9c2e827 use serverAssert() instead of assert() to get callstacks in fastlock
Former-commit-id: 45535e8a6377963dce5b158a9a6e448c5c22a0a8
2020-04-28 22:41:07 -04:00
Guy Benoish
057865a6a5 XINFO STREAM FULL should have a default COUNT of 10 2020-04-28 18:09:03 +03:00
Salvatore Sanfilippo
e0de7c0852
Merge pull request #7134 from guybe7/xstate_command
Extend XINFO STREAM output
2020-04-28 16:31:00 +02:00
Guy Benoish
1e2aee3919 Extend XINFO STREAM output
Introducing XINFO STREAM <key> FULL
2020-04-28 13:03:43 +03:00
Salvatore Sanfilippo
ce25ceda58
Merge pull request #7101 from hwware/fixunusedmarco
Fix not used marco in cluster.c
2020-04-28 11:22:09 +02:00
Oran Agra
b712fba17c 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 11:20:15 +02:00
antirez
64e588bfab Rework comment in dictEncObjKeyCompare(). 2020-04-28 11:20:15 +02:00
Oran Agra
0d1e8c93bf 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-28 11:20:15 +02:00
Madelyn Olson
a1bed447b3 Added crcspeed library 2020-04-28 11:20:15 +02:00
Madelyn Olson
a75fa3aad1 Made crc64 test consistent 2020-04-28 11:20:15 +02:00
Madelyn Olson
52c75e9db1 Implemented CRC64 based on slice by 4 2020-04-28 11:20:15 +02:00
Oran Agra
9a3dab0a2e 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
antirez
31781e97b6 Rework comment in dictEncObjKeyCompare(). 2020-04-27 22:40:15 +02:00
Oran Agra
09a5c07886 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
911a2d6cb4
Merge pull request #7148 from madolson/unstable-crc
Unstable crc
2020-04-27 17:29:13 +02:00
Oran Agra
8110ba8880 optimize memory usage of deferred replies
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
2020-04-27 16:46:14 +02:00
Salvatore Sanfilippo
828736e7d0
Merge pull request #7146 from oranagra/optimize_deferred_reply
optimize memory usage of deferred replies
2020-04-27 16:45:47 +02:00