245 Commits

Author SHA1 Message Date
John Sully
f11840f6b2 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
dd405d4026 Add RedisModule_GetKeyNameFromIO(). 2019-03-15 10:23:27 +02:00
John Sully
aa76a89a9a Merge branch 'unstable' of https://github.com/antirez/redis into unstable
Former-commit-id: be3cb1ad3386f382ed7506dbfd1adb810e327007
2019-03-14 14:22:27 -04:00
antirez
9c504573f1 Improve comments after merging #5834. 2019-03-14 12:47:36 +01:00
Salvatore Sanfilippo
06339c7f54 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
1596a57f76 Merge pull request #5694 from guybe7/rm_log_args
Check server.verbosity in RM_LogRaw
2019-03-14 11:32:03 +01:00
antirez
4e3f2ab269 Merge branch 'sharedapi' into unstable 2019-03-14 11:24:48 +01:00
John Sully
6702b89166 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
31625ad5b1 document additional flag of RM_GetContextFlags 2019-03-13 08:22:40 +02:00
swilly22
58bcc05b1d Extend REDISMODULE_CTX_FLAGS to indicate if command was sent by master 2019-03-11 10:02:19 +02:00
John Sully
38fd0476d5 Merge branch 'unstable' into RELEASE_0_9
Former-commit-id: 0bc586933ff91fd07128d5419b06303f05d16f2e
2019-03-07 19:13:33 -05:00
John Sully
25c2050c3a Module threading fixes
Former-commit-id: 2785a8b4d40b09caea5e209ab49fc5f1484981a8
2019-03-07 19:13:01 -05:00
John Sully
d1c93ee8e1 port server.c to server.cpp
Former-commit-id: 09e6a4fee09b1a61e6d2ac83a2c8fec9978474ec
2019-03-06 16:29:30 -05:00
John Sully
be82e98799 writes shouldn't be under the global lock
Former-commit-id: bcfd9327cb4fcf5e1fca9477862919817ddc5ab8
2019-02-26 00:19:38 -05:00
John Sully
dbd82f6bfc Lock use after free 2019-02-22 21:00:14 -05:00
John Sully
30e8a859c0 Prevent mixed up client replies, and deadlocks 2019-02-22 01:24:16 -05:00
John Sully
8e8abb2ff9 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
627c19e02f Multithreading works! 2019-02-20 01:20:26 -05:00
John Sully
c1031e5f98 Prevent erroneously setting CLIENT_PENDING_WRITE when we have async writes 2019-02-19 01:37:16 -05:00
John Sully
0914b52ffa Thread safety fixes 2019-02-18 22:25:35 -05:00
Guy Benoish
9cd3b12cdf 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
6059bc7e67 Initial work of multithreaded key-db. Note: Fails tests 2019-02-11 03:36:18 -05:00
John Sully
f6736cd713 Reduce memory usage for in place strings by 8 bytes 2019-02-09 13:04:18 -05:00
John Sully
ef310bc7f8 Merge branch 'unstable' of https://github.com/antirez/redis into unstable 2019-02-06 00:09:39 -05:00
John Sully
cd8145e314 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
3e61388df3 complete malloc memory class work, and pass tests 2019-02-04 16:56:13 -05:00
antirez
c68174b5e5 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
ee57594c0f ACL: assign ACL command ID to modules commands. 2019-02-01 08:17:24 +01:00
John Sully
bac51d5ac4 Custom flash heap 2019-01-29 18:10:46 -05:00
antirez
89b7b6a917 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
bf3d7bbf31 RESP3: initial implementation of the HELLO command. 2019-01-09 17:00:29 +01:00
antirez
2ff959f8ac RESP3: module.c updated. 2019-01-09 17:00:29 +01:00
antirez
b91f7656fd Modules shared API: export new core APIs. 2018-12-20 17:57:49 +01:00
antirez
692f2297b9 Modules shared API: also unregister the module as user. 2018-12-20 17:57:46 +01:00
antirez
f25bcefb82 Modules shared API: prevent unloading of used modules. 2018-12-20 17:57:43 +01:00
antirez
a41459ea5b Modules shared API: unregister APIs function. 2018-12-20 17:57:40 +01:00
antirez
f7e99b07f3 Modules shared API: initial core functions.
Based on ideas and code in PR #5560 by @MeirShpilraien.
2018-12-20 17:57:35 +01:00
antirez
ea2d253238 Revert shared APIs to modify the design. 2018-12-20 17:56:38 +01:00
MeirShpilraien
2a907e7d00 added module ability to register api to be used by other modules 2018-12-20 17:55:18 +01:00
Guy Benoish
8e9c96adc2 Check server.verbosity in RM_LogRaw 2018-12-13 13:57:38 +01:00
Hamid Alaei
602351f2a1 fix timer context selected database 2018-10-04 17:02:10 +03:30
Hamid Alaei
95cc968672 fix dict get on not found 2018-10-01 13:57:25 +03:30
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
205998ae7e Modules: dictionary API WIP #10: export API to modules. 2018-09-26 13:39:01 +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