21038 Commits

Author SHA1 Message Date
John Sully
de3769b3ee Allow reads during an active replica load, optionally allow writes as an experimental feature
Former-commit-id: 655bb6e21c5e814980a7b8b3ac1481ef142c1845
2020-09-17 00:13:03 +00:00
John Sully
2c6fbac6ea Allow reads during an active replica load, optionally allow writes as an experimental feature
Former-commit-id: 655bb6e21c5e814980a7b8b3ac1481ef142c1845
2020-09-17 00:13:03 +00:00
Oran Agra
622b57e9ee Add printf attribute and fix warnings and a minor bug (#7803)
The fix in error handling of rdbGenericLoadStringObject is an actual bugfix
2020-09-16 20:21:04 +03:00
Oran Agra
092cfca522
Add printf attribute and fix warnings and a minor bug (#7803)
The fix in error handling of rdbGenericLoadStringObject is an actual bugfix
2020-09-16 20:21:04 +03:00
WuYunlong
e9b6077ac7 bio: doFastMemoryTest should try to kill io threads as well. 2020-09-16 14:15:02 +03:00
WuYunlong
f866023399 bio: doFastMemoryTest should try to kill io threads as well. 2020-09-16 14:15:02 +03:00
WuYunlong
cf8a6e3c7a bio: fix doFastMemoryTest.
If one thread got SIGSEGV, function sigsegvHandler() would be triggered,
it would call bioKillThreads(). But call pthread_cancel() to cancel itself
would make it block. Also note that if SIGSEGV is caught by bio thread, it
should kill the main thread in order to give a positive report.
2020-09-16 14:15:02 +03:00
WuYunlong
8b70cb0ef8 bio: fix doFastMemoryTest.
If one thread got SIGSEGV, function sigsegvHandler() would be triggered,
it would call bioKillThreads(). But call pthread_cancel() to cancel itself
would make it block. Also note that if SIGSEGV is caught by bio thread, it
should kill the main thread in order to give a positive report.
2020-09-16 14:15:02 +03:00
Jim Brunner
b52051ad49 Incremental eviction processing (#7653)
Rather than blindly evicting until maxmemory limit is achieved, this
update adds a time limit to eviction.  While over the maxmemory limit,
eviction will process before each command AND as a timeProc when no
commands are running.

This will reduce the latency impact on many cases, especially pathological
cases like massive used memory increase during dict rehashing.

There is a risk that some other edge cases (like massive pipelined use
of MGET) could cause Redis memory usage to keep growing despite the
eviction attempts, so a new maxmemory-eviction-tenacity config is
introduced to let users mitigate that.
2020-09-16 09:16:01 +03:00
Jim Brunner
810e28a397
Incremental eviction processing (#7653)
Rather than blindly evicting until maxmemory limit is achieved, this
update adds a time limit to eviction.  While over the maxmemory limit,
eviction will process before each command AND as a timeProc when no
commands are running.

This will reduce the latency impact on many cases, especially pathological
cases like massive used memory increase during dict rehashing.

There is a risk that some other edge cases (like massive pipelined use
of MGET) could cause Redis memory usage to keep growing despite the
eviction attempts, so a new maxmemory-eviction-tenacity config is
introduced to let users mitigate that.
2020-09-16 09:16:01 +03:00
John Sully
e125742671 Implement replica-quorum config
Former-commit-id: ab4cdd2ed4d3ee9752737d20662178d73d16b4c2
2020-09-16 03:26:31 +00:00
John Sully
4eecb1825f Implement replica-quorum config
Former-commit-id: ab4cdd2ed4d3ee9752737d20662178d73d16b4c2
2020-09-16 03:26:31 +00:00
Yossi Gottlieb
3d111508a1 TLS: Session caching configuration support. (#7420)
* TLS: Session caching configuration support.
* TLS: Remove redundant config initialization.


Former-commit-id: d3834c50699bc4f31f381d6d03d4c1b022380895
2020-09-16 02:10:29 +00:00
Yossi Gottlieb
bf6c002005 TLS: Session caching configuration support. (#7420)
* TLS: Session caching configuration support.
* TLS: Remove redundant config initialization.


Former-commit-id: d3834c50699bc4f31f381d6d03d4c1b022380895
2020-09-16 02:10:29 +00:00
Wen Hui
2a8803f534 correct OBJECT ENCODING response for stream type (#7797)
This commit makes stream object returning "stream" as encoding type in OBJECT ENCODING subcommand and DEBUG OBJECT command.

Till now, it would return "unknown"
2020-09-15 08:58:21 +03:00
Wen Hui
6ff741b5cf
correct OBJECT ENCODING response for stream type (#7797)
This commit makes stream object returning "stream" as encoding type in OBJECT ENCODING subcommand and DEBUG OBJECT command.

Till now, it would return "unknown"
2020-09-15 08:58:21 +03:00
John Sully
dc9b75314b Protocol error in client command
Former-commit-id: 7a1b2c58c3de736540cf4ec7f1539be63a54f5ac
2020-09-11 20:48:18 +00:00
John Sully
fc7b9399f9 Protocol error in client command
Former-commit-id: 7a1b2c58c3de736540cf4ec7f1539be63a54f5ac
2020-09-11 20:48:18 +00:00
John Sully
4a3e312551 Fix more protocol errors
Former-commit-id: 7fc6d6c6b177ad88dcddd0f4a7f68b74ccdaf037
2020-09-11 20:47:27 +00:00
John Sully
ea9cd04c75 Fix more protocol errors
Former-commit-id: 7fc6d6c6b177ad88dcddd0f4a7f68b74ccdaf037
2020-09-11 20:47:27 +00:00
John Sully
caac3d12f9 Fix protocol difference with Redis
Former-commit-id: dec5db4e71231135570d1f03cde4203ec0b87e44
2020-09-11 20:08:26 +00:00
John Sully
54de1d579d Fix protocol difference with Redis
Former-commit-id: dec5db4e71231135570d1f03cde4203ec0b87e44
2020-09-11 20:08:26 +00:00
Wang Yuan
95595d0636 Remove dead global variable 'lru_clock' (#7782) 2020-09-10 17:02:27 +03:00
Wang Yuan
86511bbbef
Remove dead global variable 'lru_clock' (#7782) 2020-09-10 17:02:27 +03:00
Oran Agra
40f2c892e5 6.0.8 2020-09-10 14:09:00 +03:00
Oran Agra
03b59cd5f0 6.0.8 2020-09-10 14:09:00 +03:00
Oran Agra
e4a7840d34 Fix RESP3 response for HKEYS/HVALS on non-existing key 2020-09-10 14:09:00 +03:00
Oran Agra
5380716a70 Fix RESP3 response for HKEYS/HVALS on non-existing key 2020-09-10 14:09:00 +03:00
Roi Lipman
ee3e45ac6e RM_ThreadSafeContextTryLock a non-blocking method for acquiring GIL (#7738)
Co-authored-by: Yossi Gottlieb <yossigo@gmail.com>
Co-authored-by: Oran Agra <oran@redislabs.com>
(cherry picked from commit b1de173ec0f6a03d6083b87f1505fbf843708685)
2020-09-10 14:09:00 +03:00
Roi Lipman
25e211bcf0 RM_ThreadSafeContextTryLock a non-blocking method for acquiring GIL (#7738)
Co-authored-by: Yossi Gottlieb <yossigo@gmail.com>
Co-authored-by: Oran Agra <oran@redislabs.com>
(cherry picked from commit 042189fd8707544139337b3ddcf38b5c5fea1bf0)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
8fb8c23746 Tests: validate CONFIG REWRITE for all params. (#7764)
This is a catch-all test to confirm that that rewrite produces a valid
output for all parameters and that this process does not introduce
undesired configuration changes.

(cherry picked from commit 995f1fc53f7daf3d289d5d70d7b45cdd486dc6cc)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
635704d424 Tests: validate CONFIG REWRITE for all params. (#7764)
This is a catch-all test to confirm that that rewrite produces a valid
output for all parameters and that this process does not introduce
undesired configuration changes.

(cherry picked from commit a8b7268911803f4ac827ab22e8e5b10134664832)
2020-09-10 14:09:00 +03:00
Oran Agra
de8c720c74 Change THP warning to use madvise rather than never (#7771)
completes 60097d361d4096d3826c7580acffd4053f8a4835

(cherry picked from commit 73e0cd5a7d7c1af90f58b6af260acca4b7eb795e)
2020-09-10 14:09:00 +03:00
Oran Agra
47364bce69 Change THP warning to use madvise rather than never (#7771)
completes b2419c31c166bd2d73f7af3d089859795c0e3506

(cherry picked from commit 1461f02deb65585bb47c4d50d68ef733edfba6f9)
2020-09-10 14:09:00 +03:00
Itamar Haber
dc11921961 Documents RM_Call's fmt (#5448)
Improve RM_Call inline documentation about the fmt argument
so that we don't completely depend on the web docs.

Co-authored-by: Oran Agra <oran@redislabs.com>
(cherry picked from commit c13fa0aa3619c595f06e191a30710d85a109ad48)
2020-09-10 14:09:00 +03:00
Itamar Haber
3cd6c26056 Documents RM_Call's fmt (#5448)
Improve RM_Call inline documentation about the fmt argument
so that we don't completely depend on the web docs.

Co-authored-by: Oran Agra <oran@redislabs.com>
(cherry picked from commit ce15620dc17ebad94cd03cb4ee779fdd4e99b212)
2020-09-10 14:09:00 +03:00
Jan-Erik Rediger
b8dec46e0b Check that THP is not set to always (madvise is ok) (#4001)
THP can also be set to madvise, in which case it shouldn't cause
problems for Redis since redis (or the allocator) doesn't use madvise
to activate it.

(cherry picked from commit 60097d361d4096d3826c7580acffd4053f8a4835)
2020-09-10 14:09:00 +03:00
Jan-Erik Rediger
8b0d797ecd Check that THP is not set to always (madvise is ok) (#4001)
THP can also be set to madvise, in which case it shouldn't cause
problems for Redis since redis (or the allocator) doesn't use madvise
to activate it.

(cherry picked from commit b2419c31c166bd2d73f7af3d089859795c0e3506)
2020-09-10 14:09:00 +03:00
Eran Liberty
7fa69e6394 Allow exec with read commands on readonly replica in cluster (#7766)
There was a bug. Although cluster replicas would allow read commands,
they would not allow a MULTI-EXEC that's composed solely of read commands.
Adds tests for coverage.

Co-authored-by: Oran Agra <oran@redislabs.com>
Co-authored-by: Eran Liberty <eranl@amazon.com>
(cherry picked from commit 7bee51bb5b2cccbaae76f4721761880acf4d5a93)
2020-09-10 14:09:00 +03:00
Eran Liberty
84ba2ec82b Allow exec with read commands on readonly replica in cluster (#7766)
There was a bug. Although cluster replicas would allow read commands,
they would not allow a MULTI-EXEC that's composed solely of read commands.
Adds tests for coverage.

Co-authored-by: Oran Agra <oran@redislabs.com>
Co-authored-by: Eran Liberty <eranl@amazon.com>
(cherry picked from commit b120366d48d9e488a406965773e64f29ba2946f7)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
aa54351c5b Fix CONFIG REWRITE of oom-score-adj-values. (#7761)
(cherry picked from commit b3782098ae594a5457a9de74ce5e15f1629d077d)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
cf3375bf7c Fix CONFIG REWRITE of oom-score-adj-values. (#7761)
(cherry picked from commit 750acf3a457053ad9f57a263baa84ec68e0ae145)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
e5db52f19f redis-cli: fix writeConn() buffer handling. (#7749)
Fix issues with writeConn() which resulted with corruption of the stream by leaving an extra byte in the buffer. The trigger for this is partial writes or write errors which were not experienced on Linux but reported on macOS.

(cherry picked from commit 94cd74e5deb18e0383bcad5c596c72980e5350b6)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
332aa2f919 redis-cli: fix writeConn() buffer handling. (#7749)
Fix issues with writeConn() which resulted with corruption of the stream by leaving an extra byte in the buffer. The trigger for this is partial writes or write errors which were not experienced on Linux but reported on macOS.

(cherry picked from commit 58e5feb3f49c50b9c18f38fd8f6cad2317c02265)
2020-09-10 14:09:00 +03:00
Oran Agra
894016c396 Print server startup messages after daemonization (#7743)
When redis isn't configured to have a log file, having these prints
before damonization puts them in the calling process stdout rather than
/dev/null

(cherry picked from commit 0db61f564991ad483e2a2014738f25628584476b)
2020-09-10 14:09:00 +03:00
Oran Agra
e4db67ea57 Print server startup messages after daemonization (#7743)
When redis isn't configured to have a log file, having these prints
before damonization puts them in the calling process stdout rather than
/dev/null

(cherry picked from commit 8b0747d65734ba1128da7479f8b961e530b82916)
2020-09-10 14:09:00 +03:00
Thandayuthapani
f8d0d902a5 Add masters/replicas options to redis-cli --cluster call command (#6491)
* Add master/slave option in --cluster call command

* Update src/redis-cli.c

* Update src/redis-cli.c

Co-authored-by: Itamar Haber <itamar@redislabs.com>
(cherry picked from commit 535222063951cc1f3c2c8f78fd84fb9e0d8acefd)
2020-09-10 14:09:00 +03:00
Thandayuthapani
b983015dd4 Add masters/replicas options to redis-cli --cluster call command (#6491)
* Add master/slave option in --cluster call command

* Update src/redis-cli.c

* Update src/redis-cli.c

Co-authored-by: Itamar Haber <itamar@redislabs.com>
(cherry picked from commit f22f64f0db82cce666714808a9c994304f97904a)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
7aa207ad2c Fix double-make issue with make && make install. (#7734)
All user-supplied variables that affect the build should be explicitly
persisted.

Fixes #7254

(cherry picked from commit d377b116bad2eab176fe5f5271302823da50c94c)
2020-09-10 14:09:00 +03:00
Yossi Gottlieb
da33a18588 Fix double-make issue with make && make install. (#7734)
All user-supplied variables that affect the build should be explicitly
persisted.

Fixes #7254

(cherry picked from commit b35d6e5cffb895ab6cbbd9e5e56ef00299b1359e)
2020-09-10 14:09:00 +03:00