3d053dbb6d
Threaded IO: handleClientsWithPendingReadsUsingThreads top comment.
2019-05-06 18:02:51 +02:00
5baeb14cf3
Threaded IO: configuration directive for turning on/off reads.
2019-05-06 18:02:51 +02:00
1c0c436757
Threaded IO: ability to disable reads from threaded path.
2019-05-06 18:02:51 +02:00
90d720e7a5
Threaded IO: put fflush() inside tio_debug conditional.
2019-05-06 18:02:51 +02:00
6ab6a97fe6
Threaded IO: parsing WIP 2: refactoring to parse from thread.
2019-05-06 18:02:51 +02:00
647a66ebba
Threaded IO: parsing WIP 1: set current_client in a better scoped way.
2019-05-06 18:02:51 +02:00
463ccf8664
Threaded IO: logging should be safe in I/O threads.
...
Potentially it is possible that we get interleaved writes, even if
serverLog() makes sure to write into a buffer and then use printf(), so
even this should be ok. However in general POSIX guarantees that writing
to the same file pointer object from multiple threads is safe. Anyway
currently we *reopen* the file at each call, but for the standard output
logging.
The logging functions actually also access global configuration while
performing the log (for instance in order to check the log level, the
log filename and so forth), however dunring the I/O threads execution
we cannot alter such shared state in any way.
2019-05-06 18:02:51 +02:00
8d7d2be24f
Threaded IO: process read queue before stopping threads.
2019-05-06 18:02:51 +02:00
63a0ffd36a
Threaded IO: read side WIP 3.
2019-05-06 18:02:51 +02:00
a2245f8ff1
Threaded IO: read side WIP 2.
2019-05-06 18:02:51 +02:00
dd5b105c73
Threaded IO: read side WIP.
2019-05-06 18:02:51 +02:00
74591fb5bd
Threaded IO: hide more debugging printfs under conditional.
2019-05-06 18:02:51 +02:00
9814b2a5f3
Threaded IO: make num of I/O threads configurable.
2019-05-06 18:02:51 +02:00
30091dc29f
Threaded IO: use main thread if num of threads is 1.
2019-05-06 18:02:51 +02:00
9bf7f302a7
Threaded IO: stop threads when no longer needed + C11 in Makefile.
...
Now threads are stopped even when the connections drop immediately to
zero, not allowing the networking code to detect the condition and stop
the threads. serverCron() will handle that.
2019-05-06 18:02:51 +02:00
ea35a81c42
Threaded IO: 3rd version: use the mutex only to stop the thread.
2019-05-06 18:02:51 +02:00
6f4f36c0fb
Threaded IO: second attempt without signaling conditions.
2019-05-06 18:02:51 +02:00
a2dbd9bd97
Threaded IO: allow to disable debug printf.
2019-05-06 18:02:51 +02:00
f468e653b5
Threaded IO: implement handleClientsWithPendingWritesUsingThreads().
...
This is just an experiment for now, there are a couple of race
conditions, mostly harmless for the performance gain experiment that
this commit represents so far.
The general idea here is to take Redis single threaded and instead
fan-out on expansive kernel calls: write(2) in this case, but the same
concept could be easily implemented for read(2) and protcol parsing.
However just threading writes like in this commit, is enough to evaluate
if the approach is sounding.
2019-05-06 18:02:51 +02:00
0a6090bfd8
Merge pull request #6051 from vattezhang/unstable
...
fix: benchmark auth fails when server have requirepass
2019-05-02 09:48:02 +02:00
843de8b786
Merge pull request #5971 from devnexen/unstable
...
build fix
2019-04-26 17:32:21 +02:00
5ba908fa5f
Merge pull request #6002 from yongman/fix-memleak-in-bitfield
...
Fix memleak in bitfieldCommand
2019-04-26 17:31:42 +02:00
5c5197fe4f
Merge pull request #6013 from rouzier/fix/stream_iterator_init
...
Fix stream interator start and end key initialize
2019-04-26 17:25:20 +02:00
2d450d1315
Merge pull request #6039 from git-hulk/fix/benchmark-coredump-in-arguments
...
FIX: coredump in redis-benchmark
2019-04-26 17:17:55 +02:00
162208f94d
removed obsolete warning as per - https://github.com/antirez/redis/issues/5291
2019-04-26 17:03:16 +02:00
4e38ced488
fix: benchmark auth fails when server have requirepass
2019-04-26 19:47:07 +08:00
bc36404c79
update
2019-04-26 18:50:51 +08:00
d3d96b041a
Merge github.com:antirez/redis into unstable
2019-04-26 18:47:11 +08:00
fa97ef34ca
FIX: core dump in redis-benchmark when the -r
is the last arg
2019-04-24 20:05:35 +08:00
4a5057000a
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-04-15 16:50:48 +02:00
487601d85d
Test: disable module testing for now.
2019-04-15 16:50:26 +02:00
3ccdcbc088
Fix start and end key initialize
2019-04-11 12:19:02 -04:00
d044e33c20
Merge pull request #5961 from yossigo/modules-tests
...
Modules tests
2019-04-11 07:56:23 -07:00
9e67691ffb
Aesthetic change to #5962 to conform to Redis style.
2019-04-10 18:53:35 +02:00
6de5d25062
Merge pull request #5962 from oranagra/module_blocked_reply
...
slave corrupts replication stream when module blocked client uses large reply (or POSTPONED_ARRAY)
2019-04-10 09:41:36 -07:00
d490752d58
Fix memleak in bitfieldCommand
2019-04-09 09:24:22 +08:00
c24e32041b
ACL: Fix memory leak in ACLResetSubcommandsForCommand().
...
This commit fixes bug reported at #5998 . Thanks to @tomcat1102.
2019-04-08 18:08:37 +02:00
f8a9708aa7
ACL: regression test for #5998 .
2019-04-08 18:06:50 +02:00
75648f99a5
Fix assert comparison in fetchClusterSlotsConfiguration().
2019-04-08 17:39:26 +02:00
4de88828d9
build fix
2019-03-28 06:38:16 +00:00
acba2fc9b4
slave corrupts replication stream when module blocked client uses large reply (or POSTPONED_ARRAY)
...
when redis appends the blocked client reply list to the real client, it didn't
bother to check if it is in fact the master client. so a slave executing that
module command will send replies to the master, causing the master to send the
slave error responses, which will mess up the replication offset
(slave will advance it's replication offset, and the master does not)
2019-03-24 14:17:37 +02:00
ec0b6bd2c3
Add runtest-moduleapi with commandfilter coverage.
2019-03-24 12:03:03 +02:00
822a992f91
fix: missing initialization.
2019-03-24 12:00:33 +02:00
5e8caca036
Merge pull request #5944 from yossigo/command-filtering
...
Command Filtering API
2019-03-22 17:43:49 +01:00
fcac342955
Merge pull request #3830 from oranagra/diskless_capa_pr
...
several bugfixes to diskless replication
2019-03-22 17:41:40 +01:00
122f42844a
Merge pull request #5945 from dvirsky/miss_notification
...
Added keyspace miss notifications support
2019-03-22 17:41:00 +01:00
040e52c77f
Renamed event name from "miss" to "keymiss"
2019-03-21 20:33:11 +02:00
29b0a57695
diskless fork kept streaming RDB to a disconnected slave
2019-03-21 20:24:52 +02:00
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
4ea3ed896b
CommandFilter API: fix UnregisterCommandFilter.
2019-03-21 19:45:41 +02:00