7406 Commits

Author SHA1 Message Date
antirez
c8d9906fe6 streamAppendItem(): Update the radix tree pointer only if changed. 2018-10-02 19:45:33 +02:00
antirez
450d0be206 Listpack: optionally force reallocation on inserts.
This is useful in order to spot bugs where we fail
at updating the pointer returned by the insertion
function. Normally often the same pointer is returned,
making it harder than needed to spot bugs.

Related to #5210.
2018-10-02 19:37:36 +02:00
antirez
c58c884484 Fix printf type mismatch in genRedisInfoString(). 2018-10-02 16:26:30 +02:00
antirez
74f1b91282 streamIteratorRemoveEntry(): set back lp only if pointer changed.
Most of the times the pointer will remain the same since integers of
similar size don't take more space in listpacks.

Related to #5210.
2018-10-02 16:20:40 +02:00
Salvatore Sanfilippo
ba1d382d42 Merge pull request #5210 from soloestoy/raxinsert-in-xdel
Streams: update listpack with new pointer in XDEL
2018-10-02 16:18:55 +02:00
Salvatore Sanfilippo
50d06ebb29 Merge pull request #5392 from soloestoy/bugfix-brpoplpush
bugfix: replace lastcmd with cmd when rewrite BRPOPLPUSH as RPOPLPUSH
2018-10-02 16:09:22 +02:00
Salvatore Sanfilippo
159531c1c9 Merge pull request #5242 from oranagra/script_mem
script cache memory in INFO and MEMORY includes both script code and overheads
2018-10-02 16:03:05 +02:00
Salvatore Sanfilippo
01f020a72f Merge pull request #5397 from bmerry/fix-bad-zmalloc-size
Fix invalid use of sdsZmallocSize on an embedded string
2018-10-01 13:30:42 +02:00
Salvatore Sanfilippo
b111d8c5f9 Merge pull request #5398 from bmerry/fix-zrealloc-accounting
Fix incorrect memory usage accounting in zrealloc
2018-10-01 13:28:53 +02:00
Salvatore Sanfilippo
78e9bc067a Merge pull request #5396 from oranagra/cmdstats_exec
fix #5024 - commandstats for multi-exec were logged as EXEC.
2018-10-01 13:24:49 +02:00
Salvatore Sanfilippo
87b54ff9c1 Merge pull request #5400 from halaei/fix-dict-get-on-not-found
fix dict get on not found
2018-10-01 13:22:33 +02:00
Hamid Alaei
95cc968672 fix dict get on not found 2018-10-01 13:57:25 +03:30
antirez
4813183c5b Fix XINFO comment for consistency. 2018-10-01 11:38:58 +02:00
Bruce Merry
84f851719b Fix incorrect memory usage accounting in zrealloc
When HAVE_MALLOC_SIZE is false, each call to zrealloc causes used_memory
to increase by PREFIX_SIZE more than it should, due to mis-matched
accounting between the original zmalloc (which includes PREFIX size in
its increment) and zrealloc (which misses it from its decrement).

I've also supplied a command-line test to easily demonstrate the
problem. It's not wired into the test framework, because I don't know
TCL so I'm not sure how to automate it.
2018-09-30 11:49:03 +02:00
Oran Agra
65590b2c5c fix #5024 - commandstats for multi-exec were logged as EXEC.
this was broken a while back by ba9154d7e7bf959b002533384319a1e90545447b
the purpose of which was to fix commandstats for GEOADD
2018-09-30 12:43:11 +03:00
Bruce Merry
fb91859c09 Fix invalid use of sdsZmallocSize on an embedded string
sdsZmallocSize assumes a dynamically allocated SDS. When given a string
object created by createEmbeddedStringObject, it calls zmalloc_size on a
pointer that isn't the one returned by zmalloc
2018-09-30 11:32:48 +02:00
antirez
205c90c72c Try to avoid issues with GCC pragmas and older compilers.
See issue #5394.
2018-09-28 13:00:44 +02:00
zhaozhao.zz
0c82d7285d bugfix: replace lastcmd with cmd when rewrite BRPOPLPUSH as RPOPLPUSH
There are two problems if we use lastcmd:

1. BRPOPLPUSH cannot be rewrited as RPOPLPUSH in multi/exec
    In mulit/exec context, the lastcmd is exec.
2. Redis will crash when execute RPOPLPUSH loading from AOF
    In fakeClient, the lastcmd is NULL.
2018-09-28 12:06:48 +08:00
antirez
f32daa117d Modules: hellodict example WIP #3: KEYRANGE. 2018-09-27 17:01:35 +02:00
antirez
cda734caff Modules: Modules: dictionary API WIP #13: Compare API exported. 2018-09-27 11:46:22 +02:00
antirez
c50d4543cd Modules: Modules: dictionary API WIP #12: DictCompare API. 2018-09-27 11:44:25 +02:00
antirez
9b6124ab33 Modules: Modules: dictionary API WIP #11: DictCompareC API. 2018-09-27 11:44:16 +02:00
antirez
6174c05b4d Modules: hellodict example WIP #1: GET command. 2018-09-27 11:22:43 +02:00
antirez
f0b362b933 Modules: hellodict example WIP #1: SET command. 2018-09-26 17:52:12 +02:00
antirez
bcd42235b5 Modules: remove useless defines in hellotimer.c 2018-09-26 17:42:00 +02:00
antirez
203f8f239e Modules: fix top comment of hellotimer.c 2018-09-26 17:41:08 +02:00
antirez
f8f73dd9fc Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-09-26 13:39:16 +02:00
antirez
205998ae7e Modules: dictionary API WIP #10: export API to modules. 2018-09-26 13:39:01 +02:00
Salvatore Sanfilippo
7bd5e55349 Merge pull request #5373 from gkorland/patch-5
add missing argument to function doc
2018-09-25 17:18:50 +02:00
Salvatore Sanfilippo
1f5e00d279 Merge pull request #5377 from Chupaka/patch-1
Fix typo in comment
2018-09-25 17:15:34 +02:00
antirez
3d519b053b Modules: dictionary API WIP #9: iterator returning string object. 2018-09-25 16:49:46 +02:00
antirez
b3f7937338 Modules: dictionary API WIP #8: Iterator next/prev. 2018-09-25 16:25:46 +02:00
antirez
7cbb6c9991 Modules: dictionary API WIP #7: don't store the context.
Storing the context is useless, because we can't really reuse that
later. For instance in the API RM_DictNext() that returns a
RedisModuleString for the next key iterated, the user should pass the
new context, because we may run the keys of the dictionary in a
different context of the one where the dictionary was created. Also the
dictionary may be created without a context, but we may still demand
automatic memory management for the returned strings while iterating.
2018-09-25 12:58:16 +02:00
antirez
bfe5d08d99 Modules: dictionary API WIP #6: implement automatic memory management. 2018-09-25 12:45:08 +02:00
antirez
7e2e9e8ff0 Modules: dictionary API work in progress #5: rename API for consistency.
By using the "C" suffix for functions getting pointer/len, we can do the
same in the future for other modules APIs that need a variant with
pointer/len and that are now accepting a RedisModuleString.
2018-09-25 12:31:46 +02:00
antirez
c3ecfc8c55 Modules: change RedisModuleString API to allow NULL context.
The burden of having to always create RedisModuleString objects within a
module context was too much, especially now that we have threaded
operations and modules are doing more interesting things. The context in
the string API is currently only used for automatic memory managemnet,
so now the API was modified so that the user can opt-out this feature by
passing a NULL context.
2018-09-24 17:20:00 +02:00
antirez
3d49adf211 Modules: dictionary API work in progress #4: reseek API. 2018-09-24 16:43:47 +02:00
Pavel Skuratovich
22f9dd03b0 Fix typo in comment 2018-09-24 16:14:36 +03:00
antirez
9825f168fa Modules: dictionary API work in progress #3: Iterator creation. 2018-09-24 11:44:49 +02:00
antirez
8e6a1909aa Modules: dictionary API work in progress #2: Del API. 2018-09-24 11:16:58 +02:00
antirez
3480bebb3c Modules: dictionary API work in progress #1. 2018-09-21 17:54:09 +02:00
Guy Korland
c03afe91e7 add missing argument to function doc 2018-09-21 02:46:31 +03:00
antirez
d174bc8269 Module cluster flags: use RM_SetClusterFlags() in the example. 2018-09-19 16:17:20 +02:00
antirez
587db27252 Module cluster flags: add RM_SetClusterFlags() API. 2018-09-19 12:02:37 +02:00
antirez
6b30cb52da Module cluster flags: add hooks for NO_FAILOVER flag. 2018-09-19 11:43:37 +02:00
antirez
ebf0968a38 Module cluster flags: add hooks for NO_REDIRECTION flag. 2018-09-19 11:31:22 +02:00
antirez
96ceafbe4d Module cluster flags: initial vars / defines added. 2018-09-19 11:20:52 +02:00
antirez
2a311bcf6a Modules: rename the reused static client to something more general. 2018-09-18 13:22:05 +02:00
antirez
645f017e3f Modules: associate a fake client to timer context callback. 2018-09-18 13:19:33 +02:00
antirez
c79bc87f2d Modules: associate a fake client to cluster message context callback.
Fixes #5354.
2018-09-18 13:15:40 +02:00