406 Commits

Author SHA1 Message Date
John Sully
a7ed7e06a8 Merge branch 'unstable' into wip-multimaster
Former-commit-id: 4326d22380e4e4d9491c4b7cd050b26ec49663b3
2019-04-03 00:12:13 -04:00
John Sully
c40779752e Merge branch 'unstable' of https://github.com/antirez/redis into unstable
Former-commit-id: 3745bbd95b16d7134c86143f458d7f31168c7d33
2019-04-03 00:00:38 -04:00
John Sully
9b87144950 It compiles and doesn't crash immediately!
Former-commit-id: efaeca588717ca7cd44aa3502672d158acd94a6d
2019-04-02 16:47:05 -04:00
Salvatore Sanfilippo
5e8caca036
Merge pull request #5944 from yossigo/command-filtering
Command Filtering API
2019-03-22 17:43:49 +01:00
John Sully
8a9e9ff3f4 Merge branch 'unstable' of https://github.com/antirez/redis into unstable
Former-commit-id: 9322d604eea7b48df3feff47ce2c04f82291228f
2019-03-21 20:15:59 -04:00
Yossi Gottlieb
6c0a5fde3d CommandFilter API: REDISMODULE_CMDFILTER_NOSELF.
Add a flag to automatically protect filters from being called
recursively by their own module.
2019-03-21 19:53:12 +02:00
Yossi Gottlieb
4ea3ed896b CommandFilter API: fix UnregisterCommandFilter. 2019-03-21 19:45:41 +02:00
Yossi Gottlieb
e2626f69ec CommandFilter API: Add unregister option.
A filter handle is returned and can be used to unregister a filter.  In
the future it can also be used to further configure or manipulate the
filter.

Filters are now automatically unregistered when a module unloads.
2019-03-21 14:44:49 +02:00
Yossi Gottlieb
dd8b4be46b CommandFilter API: Extend documentation. 2019-03-19 19:48:47 +02:00
Yossi Gottlieb
325fc1cb2e CommandFilter API: Support Lua and RM_call() flows. 2019-03-18 23:06:38 +02:00
Yossi Gottlieb
2a5aeef79f CommandFilter API: More cleanup. 2019-03-18 23:05:52 +02:00
Yossi Gottlieb
6711132083 Add command filtering argument handling API. 2019-03-18 18:36:46 +02:00
Yossi Gottlieb
c3e187190b Initial command filter experiment. 2019-03-18 13:50:34 +02:00
Yossi Gottlieb
a88264d934 Add RedisModule_GetKeyNameFromIO(). 2019-03-15 10:23:27 +02:00
John Sully
65c581d318 Merge branch 'unstable' of https://github.com/antirez/redis into unstable
Former-commit-id: be3cb1ad3386f382ed7506dbfd1adb810e327007
2019-03-14 14:22:27 -04:00
antirez
d292a51618 Improve comments after merging #5834. 2019-03-14 12:47:36 +01:00
Salvatore Sanfilippo
0cce98f2f9
Merge pull request #5834 from guybe7/trim_module_sds
Trim SDS free space of retained module strings
2019-03-14 12:41:31 +01:00
Salvatore Sanfilippo
01ace0b240
Merge pull request #5694 from guybe7/rm_log_args
Check server.verbosity in RM_LogRaw
2019-03-14 11:32:03 +01:00
antirez
6fd4af1f12 Merge branch 'sharedapi' into unstable 2019-03-14 11:24:48 +01:00
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
Guy Benoish
bdd9a8002a Trim SDS free space of retained module strings
In some cases processMultibulkBuffer uses sdsMakeRoomFor to
expand the querybuf, but later in some cases it uses that query
buffer as is for an argv element (see "Optimization"), which means
that the sds in argv may have a lot of wasted space, and then in case
modules keep that argv RedisString inside their data structure, this
space waste will remain for long (until restarted from rdb).
2019-02-12 14:21:21 +01: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
antirez
8a87de130f Modules shared API: export new core APIs. 2018-12-20 17:57:49 +01:00