John Sully
46853f1357
Merge branch 'unstable' of https://github.com/antirez/redis into unstable
...
Lots of fixes and improvements from upstream.
Former-commit-id: 261cf24efc8bedec7ee76a8897b9a800a4d663e2
2019-03-13 18:08:22 -04:00
swilly22
89bf4db4fa
document additional flag of RM_GetContextFlags
2019-03-13 08:22:40 +02:00
swilly22
468860ae18
Extend REDISMODULE_CTX_FLAGS to indicate if command was sent by master
2019-03-11 10:02:19 +02:00
John Sully
7408646c8a
Merge branch 'unstable' into RELEASE_0_9
...
Former-commit-id: 0bc586933ff91fd07128d5419b06303f05d16f2e
2019-03-07 19:13:33 -05:00
John Sully
02b030bc8c
Module threading fixes
...
Former-commit-id: 2785a8b4d40b09caea5e209ab49fc5f1484981a8
2019-03-07 19:13:01 -05:00
John Sully
6add662139
port server.c to server.cpp
...
Former-commit-id: 09e6a4fee09b1a61e6d2ac83a2c8fec9978474ec
2019-03-06 16:29:30 -05:00
John Sully
9f52d518c3
writes shouldn't be under the global lock
...
Former-commit-id: bcfd9327cb4fcf5e1fca9477862919817ddc5ab8
2019-02-26 00:19:38 -05:00
John Sully
1761aabab4
Lock use after free
2019-02-22 21:00:14 -05:00
John Sully
f4b060e0bd
Prevent mixed up client replies, and deadlocks
2019-02-22 01:24:16 -05:00
John Sully
02e7fe400c
Cleanup lock contention, and ensure clients are written to in an unsafe way when the global lock is released
2019-02-20 23:30:21 -05:00
John Sully
29c1105132
Multithreading works!
2019-02-20 01:20:26 -05:00
John Sully
357a9e92e2
Prevent erroneously setting CLIENT_PENDING_WRITE when we have async writes
2019-02-19 01:37:16 -05:00
John Sully
2526d51d1a
Thread safety fixes
2019-02-18 22:25:35 -05:00
John Sully
d62178ec8c
Initial work of multithreaded key-db. Note: Fails tests
2019-02-11 03:36:18 -05:00
John Sully
2f9d958e96
Reduce memory usage for in place strings by 8 bytes
2019-02-09 13:04:18 -05:00
John Sully
3e9e84ca19
Merge branch 'unstable' of https://github.com/antirez/redis into unstable
2019-02-06 00:09:39 -05:00
John Sully
41a24e689e
Make main headers C++ safe, and change rdb to use file descriptor instead of FILE pointer
2019-02-05 23:36:40 -05:00
John Sully
2f753a3539
complete malloc memory class work, and pass tests
2019-02-04 16:56:13 -05:00
antirez
1769c22248
ACL: set modules help clients to the root user.
...
It does not make much sense to limit what modules can do: the admin
should instead limit what module commnads an user may call. So
RedisModule_Call() and other module operations should be able to execute
everything they want: the limitation should be posed by the API exported
by the module itself.
2019-02-01 11:37:28 +01:00
antirez
38c6030278
ACL: set modules help clients to the root user.
...
It does not make much sense to limit what modules can do: the admin
should instead limit what module commnads an user may call. So
RedisModule_Call() and other module operations should be able to execute
everything they want: the limitation should be posed by the API exported
by the module itself.
2019-02-01 11:37:28 +01:00
antirez
b6372f16c4
ACL: assign ACL command ID to modules commands.
2019-02-01 08:17:24 +01:00
antirez
15385d4d68
ACL: assign ACL command ID to modules commands.
2019-02-01 08:17:24 +01:00
John Sully
0ffcf355fe
Custom flash heap
2019-01-29 18:10:46 -05:00
antirez
5190cbe08f
RESP3: addReplyString() -> addReplyProto().
...
The function naming was totally nuts. Let's fix it as we break PRs
anyway with RESP3 refactoring and changes.
2019-01-09 17:00:30 +01:00
antirez
709a6612eb
RESP3: addReplyString() -> addReplyProto().
...
The function naming was totally nuts. Let's fix it as we break PRs
anyway with RESP3 refactoring and changes.
2019-01-09 17:00:30 +01:00
antirez
75a6d12dd0
RESP3: initial implementation of the HELLO command.
2019-01-09 17:00:29 +01:00
antirez
4f0860cbfd
RESP3: initial implementation of the HELLO command.
2019-01-09 17:00:29 +01:00
antirez
1916a890f7
RESP3: module.c updated.
2019-01-09 17:00:29 +01:00
antirez
baf5b3f93a
RESP3: module.c updated.
2019-01-09 17:00:29 +01:00
Hamid Alaei
a2ddb585ec
fix timer context selected database
2018-10-04 17:02:10 +03:30
Hamid Alaei
87264235cc
fix timer context selected database
2018-10-04 17:02:10 +03:30
Hamid Alaei
168f8b7ef6
fix dict get on not found
2018-10-01 13:57:25 +03:30
Hamid Alaei
86fb7b20bf
fix dict get on not found
2018-10-01 13:57:25 +03:30
antirez
4732fe03d0
Modules: Modules: dictionary API WIP #13 : Compare API exported.
2018-09-27 11:46:22 +02:00
antirez
0aecb135c9
Modules: Modules: dictionary API WIP #13 : Compare API exported.
2018-09-27 11:46:22 +02:00
antirez
458813e132
Modules: Modules: dictionary API WIP #12 : DictCompare API.
2018-09-27 11:44:25 +02:00
antirez
80bde9844b
Modules: Modules: dictionary API WIP #12 : DictCompare API.
2018-09-27 11:44:25 +02:00
antirez
246d0517a8
Modules: Modules: dictionary API WIP #11 : DictCompareC API.
2018-09-27 11:44:16 +02:00
antirez
7af83a0c11
Modules: Modules: dictionary API WIP #11 : DictCompareC API.
2018-09-27 11:44:16 +02:00
antirez
fee4574b1e
Modules: dictionary API WIP #10 : export API to modules.
2018-09-26 13:39:01 +02:00
antirez
1e585d01de
Modules: dictionary API WIP #10 : export API to modules.
2018-09-26 13:39:01 +02:00
antirez
1630079948
Modules: dictionary API WIP #9 : iterator returning string object.
2018-09-25 16:49:46 +02:00
antirez
3ff82790e1
Modules: dictionary API WIP #9 : iterator returning string object.
2018-09-25 16:49:46 +02:00
antirez
a46eaab34c
Modules: dictionary API WIP #8 : Iterator next/prev.
2018-09-25 16:25:46 +02:00
antirez
fb1d5717de
Modules: dictionary API WIP #8 : Iterator next/prev.
2018-09-25 16:25:46 +02:00
antirez
7d375cbd91
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
58ac1f8bbe
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
fba628b4be
Modules: dictionary API WIP #6 : implement automatic memory management.
2018-09-25 12:45:08 +02:00
antirez
b6c794acf6
Modules: dictionary API WIP #6 : implement automatic memory management.
2018-09-25 12:45:08 +02:00
antirez
9c118be041
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