9418 Commits

Author SHA1 Message Date
antirez
17b4ac3f8c 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
antirez
4e10311fe5 Threaded IO: process read queue before stopping threads. 2019-05-06 18:02:51 +02:00
antirez
b9b29641cf Threaded IO: read side WIP 3. 2019-05-06 18:02:51 +02:00
antirez
1c3b585e78 Threaded IO: read side WIP 2. 2019-05-06 18:02:51 +02:00
antirez
7bae8afef8 Threaded IO: read side WIP. 2019-05-06 18:02:51 +02:00
antirez
793134d0e6 Threaded IO: hide more debugging printfs under conditional. 2019-05-06 18:02:51 +02:00
antirez
dc4d13e751 Threaded IO: make num of I/O threads configurable. 2019-05-06 18:02:51 +02:00
antirez
79626ca340 Threaded IO: use main thread if num of threads is 1. 2019-05-06 18:02:51 +02:00
Ubuntu
0353d13321 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
antirez
444b5f2af5 Threaded IO: 3rd version: use the mutex only to stop the thread. 2019-05-06 18:02:51 +02:00
antirez
df0a28f661 Threaded IO: second attempt without signaling conditions. 2019-05-06 18:02:51 +02:00
antirez
c1cb2ae695 Threaded IO: allow to disable debug printf. 2019-05-06 18:02:51 +02:00
antirez
62261aa905 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
liaotonglang
e374c6eb55 delete sdsTest() from REDIS_TEST
sdsTest() defined in sds.c dit not match the call in server.c.
remove it from REDIS_TEST, since test-sds defined in Makefile.
2019-05-06 19:24:00 +08:00
WuYunlong
0bf3acce38 Do not active expire keys in the background when the switch is off. 2019-05-06 11:46:07 +08:00
Yossi Gottlieb
7653918c7a Preserve client->id for blocked clients. 2019-05-05 20:32:53 +03:00
Oran Agra
c76bb465f2 make replication tests more stable on slow machines
solving few replication related tests race conditions which fail on slow machines

bugfix in slave buffers test: since the test is executed twice, each time with
a different commands count, the threshold for the delta can't be a constant.
2019-05-05 08:25:01 +03:00
Salvatore Sanfilippo
111ab16557 Merge pull request #6051 from vattezhang/unstable
fix: benchmark auth fails when server have requirepass
2019-05-02 09:48:02 +02:00
zhaozhao.zz
7ff5c6011d aof: enhance AOF_FSYNC_EVERYSEC, more details in #5985 2019-04-29 14:38:28 +08:00
Salvatore Sanfilippo
179c89c6a4 Merge pull request #5971 from devnexen/unstable
build fix
2019-04-26 17:32:21 +02:00
Salvatore Sanfilippo
73c5902548 Merge pull request #6002 from yongman/fix-memleak-in-bitfield
Fix memleak in bitfieldCommand
2019-04-26 17:31:42 +02:00
Salvatore Sanfilippo
30e8a7fec4 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
Salvatore Sanfilippo
801404871e 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
abhay
b19e3e0e4c removed obsolete warning as per - https://github.com/antirez/redis/issues/5291 2019-04-26 17:03:16 +02:00
vattezhang
42bccb59c5 fix: benchmark auth fails when server have requirepass 2019-04-26 19:47:07 +08:00
vattezhang
03c7e580d7 update 2019-04-26 18:50:51 +08:00
vattezhang
dd038a522f Merge github.com:antirez/redis into unstable 2019-04-26 18:47:11 +08:00
git-hulk
7bda78088d FIX: core dump in redis-benchmark when the -r is the last arg 2019-04-24 20:05:35 +08:00
John Sully
6ae796cb91 refactor server global into a pointer (so that threadsafe commands can set this to NULL to prove they don't rely on it
Former-commit-id: 37b2d046bef12c7ee7cac4883f0b64ddde236d74
2019-04-21 14:01:10 -04:00
John Sully
83adc0eabb Factor out some normally const globals
Former-commit-id: fa2e407873fce7f936943ae1fe162d54d7bedd70
2019-04-21 13:20:45 -04:00
John Sully
a3228b0875 additional fix to rreplay forward compat
Former-commit-id: c61cf57db5d9d274d5fb8806a9716056e06eb47d
2019-04-20 01:36:23 -04:00
John Sully
ea83004d18 Make rreplay forward compatible with extra future args
Former-commit-id: ef3690f2db48b80e3ffb5dbfc7d538c3bec23ee2
2019-04-20 01:15:01 -04:00
John Sully
fd65ef689a Tweak mvcc time format so rollovers are not an issue
Former-commit-id: 14d01ec7bd6f20aea1ed51a1056d02d99583c6d2
2019-04-20 01:03:08 -04:00
John Sully
d6be236697 Timestamp writes to objects so we can be smarter about merging databases
Former-commit-id: 5dc9f70386617b02fab7eee1194f321f6b4b25c5
2019-04-20 00:52:07 -04:00
John Sully
3b09f197d5 Fix use uninitialized
Former-commit-id: 88e593bf967487835eaadf700abb3761e34306cb
2019-04-19 23:41:40 -04:00
John Sully
c07aa5f3fe Additional MVCC work and fix memory leak loading objects from rdb
Former-commit-id: efde2e6be6dc2fc3425a17e2dc146c5b8823730a
2019-04-19 22:54:42 -04:00
John Sully
676334758d Add version override command for users that need compatibility with Redis
Former-commit-id: 5a78a3bc46335a844490fe00e657d68313680cbe
2019-04-19 19:57:11 -04:00
John Sully
7933223b2a RREPLAY PERF: The UUID stack is unnecessary, RREPLAY itself can detect the cycle and call cancel()
Former-commit-id: b276d803d49339eb30879a3d170ebc480d9430bd
2019-04-19 19:36:47 -04:00
John Sully
daed37e6c4 Detect cycles in mesh networks with multi master
Former-commit-id: da51ac430b43628f5cb5c1f0f005d937ed32660b
2019-04-19 19:31:11 -04:00
John Sully
a8d89641cf Fix crash near boot when adding replicas and dumping database
Former-commit-id: 01eb0a3c7f01d381ffb66c3fec0214d07e8594de
2019-04-19 17:08:54 -04:00
John Sully
bb07727a0d Replication fake connection should inhereit the user and permission of the real connection
Former-commit-id: dc2b3cf4f8965c329ea23d78c33592c99f16b109
2019-04-18 22:07:35 -04:00
chendianqiang
1e29403134 stop ping when client pause 2019-04-17 21:20:10 +08:00
John Sully
0e10e4f6f5 Start of MVCC support (and more C++)
Former-commit-id: c4621a5ed2a7d8ca5034f2fbe8b71550f290ea64
2019-04-16 23:16:03 -04:00
Itamar Haber
971d9ee0aa Adds a "Modules" section to INFO
Fixes #6012.

As long as "INFO is broken", this should be adequate IMO. Once we rework
`INFO`, perhaps into RESP3, this implementation should be revisited.
2019-04-16 22:16:12 +03:00
John Sully
98c30dfac1 Fix module linking and crashing issues
Former-commit-id: 1c953a4d5b332a0758d77d378c0caffa4d9bcfe4
2019-04-16 13:34:22 -04:00
Itamar Haber
346355edc1 Uses addReplyBulkCString
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2019-04-16 17:38:33 +03:00
Itamar Haber
1b3f0c047a Adds RedisModule_ReplyWithCString
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2019-04-16 17:15:23 +03:00
John Sully
e79d075076 Fix replica authentication failure when masterauth is below replicaof in the config file
Former-commit-id: c64ce7aa9c7783425430e08831f1c41346e315a9
2019-04-15 22:31:02 -04:00
antirez
8b3da54796 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2019-04-15 16:50:48 +02:00
antirez
d21b3b9d9e Test: disable module testing for now. 2019-04-15 16:50:26 +02:00