15064 Commits

Author SHA1 Message Date
Oran Agra
04ba485042 Fix redis-cli / redis-sential overflow on some platforms (CVE-2021-32762)
The redis-cli command line tool and redis-sentinel service may be vulnerable
to integer overflow when parsing specially crafted large multi-bulk network
replies. This is a result of a vulnerability in the underlying hiredis
library which does not perform an overflow check before calling the calloc()
heap allocation function.

This issue only impacts systems with heap allocators that do not perform their
own overflow checks. Most modern systems do and are therefore not likely to
be affected. Furthermore, by default redis-sentinel uses the jemalloc allocator
which is also not vulnerable.
2021-10-04 13:59:40 +03:00
Oran Agra
b1149a49b2 Fix Integer overflow issue with intsets (CVE-2021-32687)
The vulnerability involves changing the default set-max-intset-entries
configuration parameter to a very large value and constructing specially
crafted commands to manipulate sets
2021-10-04 13:59:40 +03:00
John Sully
66af52120c disable key cache during load if necessary
Former-commit-id: 68dcf66909e2138da4902bdec98985f4fcd737cf
2021-10-04 07:35:36 +00:00
John Sully
db351b697a Handle the case where the key cache exceeds maxmemory
Former-commit-id: 01febf902267fec7fe87e6437b0b81fd08b50963
2021-10-04 07:34:05 +00:00
John Sully
e580edabac Don't expand the dictionary if a storage provider is set as we won't use the whole thing
Former-commit-id: 1f07b01144397cec59ec2d94f41c85eceb7248e2
2021-10-04 07:33:38 +00:00
John Sully
4650e051bd Use the concurrentqueue for multithread load instead of mutex and cvs
Former-commit-id: d5a59113dbfedaf7b62a650cff58a2e8ec01826f
2021-10-04 07:33:03 +00:00
John Sully
a4b8d420de Add in the concurrentqueue
Former-commit-id: 319cad462be502b0b7a8c45b634d578b2c1c4e9d
2021-10-02 18:27:21 +00:00
jsully
7cf8433745 Merge branch 'improve_overwrite_performance' into 'keydbpro'
Improve overwrite performance

See merge request external-collab/keydb-pro-6!4

Former-commit-id: 7e59e889f28e30fca409dfb951c31f8cb47effbd
2021-09-28 18:13:12 +00:00
John Sully
617519e021 Revert "Don't zero out potentially long buffers" - It has no benefit above the noise floor and potentially is the cause of a multithread slowdown
This reverts commit 711c08c62491d0670b329fa7760c6938689910f1 [formerly 91e76ab4a00546278100baf6dfe61c13e802b40e].


Former-commit-id: f651cf67d731a10c3a52e30261c8d8b9d291576c
2021-09-28 18:08:15 +00:00
malavan
4b43f12a97 add hmset and hmget to keydb-benchmark
Former-commit-id: e05466c362ba01e61cf007ad8bfc26e1af21ec4f
2021-09-23 20:53:27 +00:00
malavan
a41ee0af81 add async tag to hgwtall hkeys hvals hscan
Former-commit-id: 8534de27603bd4cbd10a087840bcb1a90651afa1
2021-09-23 20:18:38 +00:00
malavan
1a9dc0d312 add async lookup to hmget
Former-commit-id: a967b47b60e3f4efbc945dc44a0903f47e07993f
2021-09-23 19:57:18 +00:00
malavan
d502437cf3 Merge branch 'async_commands' of https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro into async_commands
Former-commit-id: a19112ec839da4684aeb1a9d1b41906f4c698944
2021-09-23 17:48:33 +00:00
John Sully
154c9d1f79 Rework the tuning to be better for mixed read/write workloads
Former-commit-id: a4fdd3e3cb41160b20e92e1b1f4f4ebd2ee86a4a
2021-09-23 17:46:56 +00:00
John Sully
3294e4f788 Move the snapshot stale threshold to a named constant
Former-commit-id: 46d2aaf17abb0fb021aa6d7b393ffc143493d339
2021-09-23 17:45:49 +00:00
John Sully
99ff67283c prefetch crashes intermittently when a snapshot exists
Former-commit-id: 4a2657023d5d8218c815ce77c2676fd53a634b3f
2021-09-23 17:44:06 +00:00
malavan
4297a3fb32 prev_error_count needs to be thread local
Former-commit-id: 4abede1c40db1dfb4235b9aa1e3177678c5304b1
2021-09-23 17:41:28 +00:00
John Sully
bba9b516bf Async commands incorrectly think they are dirty
Former-commit-id: 4874247931425767156ab3da934c00a4d4832bcf
2021-09-23 05:24:28 +00:00
John Sully
34d7a95ea6 Create snapshots less often, and use them if they exist
Former-commit-id: ba8a00074171d346813247de0b218e08c8f07b92
2021-09-23 00:19:52 +00:00
John Sully
96c825d300 Clients should initialize with an mvcc checkpoint
Former-commit-id: 5183cb721774be1b769d130359e4bddb1eb8224b
2021-09-23 00:15:47 +00:00
malavan
0a92bbbdfb update expire tests for async commands
Former-commit-id: 088ecd30a7b360e63d701f811f2fc0b9d77f5eb0
2021-09-22 21:49:30 +00:00
malavan
2e5c69f2d8 make keyIsExpired check earlier on async read
Former-commit-id: 32dbfbb3a69681553b65afa2d05ea47058833550
2021-09-22 21:16:36 +00:00
malavan
3857c65dd9 remove unneeded mgetCore function
Former-commit-id: 7961d4253b5a356e24d17ab07ac79ba1bf191efd
2021-09-22 21:15:47 +00:00
malavan
5ede3928ca check if key is expired for async lookup
Former-commit-id: d4e3a2688e903fe426e791f8608495fca1c76df6
2021-09-22 19:30:38 +00:00
malavan
0e19299966 Merge branch 'async_commands' of https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro into async_commands
Former-commit-id: 393add1f3d70f7d1e09ecbce60c65508bc06394d
2021-09-22 19:28:37 +00:00
John Sully
5895990d6b We can't evict in an async command
Former-commit-id: 39c2903cbca08c2dbfc3275f83d65e6360c61651
2021-09-22 19:26:30 +00:00
John Sully
caff59ed65 We returned too early and didn't set the mvcc
Former-commit-id: d8e2ffe538a6b237529c37cb142a7076dd4836f8
2021-09-22 19:25:57 +00:00
John Sully
0d6cab75fc We can't do a command async if there are monitors because we need the lock
Former-commit-id: c5b6ade51251a3f57b69d1f3d9c22b199ec00a69
2021-09-22 19:24:39 +00:00
malavan
d95eda5af8 Merge branch 'async_commands' of https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro into async_commands
Former-commit-id: d6cc79a80d0bd22c99e3ea21740c89870cfb235b
2021-09-21 22:00:33 +00:00
John Sully
0f37ae44e6 Make tests deterministic and fix an issue found
Former-commit-id: fd00f39f3ca11053a5c99ab52daa1f9a051b7058
2021-09-21 21:59:19 +00:00
John Sully
9c48bfbca1 Improve low load latency
Former-commit-id: f5ac2432cf58c697a6da101d63423679cbd08021
2021-09-21 21:15:21 +00:00
malavan
705c0c4ed3 add mget to keydb-benchmark
Former-commit-id: 6bd15f65c46f570f66d58bd759e1c595006d783a
2021-09-21 20:57:08 +00:00
John Sully
af1c51dc53 Make async commands runtime configurable
Former-commit-id: 23bafb5f7c3c9805581f4bf09d9d5136898c2883
2021-09-21 20:49:44 +00:00
John Sully
59855278e0 Initial implementation of async commands
Former-commit-id: 0d3a4ce7e60c42b2d81962f13100bd1789bf64a8
2021-09-21 20:43:16 +00:00
John Sully
d5ee9cb1be Unify job types so everything is processed in order
Former-commit-id: 625aa97e4cf16337e8b052b7a27491a0ab09110f
2021-09-17 17:27:19 +00:00
Malavan Sotheeswaran
5ed9217c15 Merge fix to dict resize during rdb load
Former-commit-id: c398d5f8a027c67acac64bdbfbd01486dde555eb
2021-09-17 16:10:48 +00:00
Maxime de Roucy
edbf9cf918 syslog: enforce syslog identity and facility as soon as possible
Former-commit-id: a9eaf0a130d3685c000d5f9cb500bb5f8cb8b263
2021-09-16 17:29:55 -04:00
Maxime de Roucy
b834e66e2d use LL_… log level instead of syslog LOG_… log level
Else there is an out of bound access in syslogLevelMap.

For example if we use `serverLog(LOG_INFO,…`, later in the code
it tries to access `syslogLevelMap[LOG_INFO]`.
LOG_INFO == 6 but syslogLevelMap only have 4 elements.


Former-commit-id: a1680fa612bdf5f521ea2c06b83994bf0797015a
2021-09-16 17:29:07 -04:00
malavan
deda1bdd44 if statement was actually correct
Former-commit-id: d44b99afdf1ec92f8a36f0c091c37328008d867b
2021-09-14 17:17:08 +00:00
malavan
eb03d1cbaf the if statement was actually correct
Former-commit-id: 8e4d1ceb859b3440bdec525ff7b8ed4aef86f4b8
2021-09-14 17:15:44 +00:00
malavan
51fe42b10e improve overwrite key performance
Former-commit-id: 56f9d5528385ea78074a308c6d3987b920d6cc35
2021-09-14 17:06:04 +00:00
malavan
c81a0bfd54 missing brackets in databasesCron rehash check
Former-commit-id: f2f0d5287edda676a514cbc02172bb874569016b
2021-09-14 02:03:18 +00:00
John Sully
711c08c624 Don't zero out potentially long buffers
Former-commit-id: 91e76ab4a00546278100baf6dfe61c13e802b40e
2021-09-10 00:40:08 +00:00
John Sully
e62e367ed3 In single thread mode don't batch
Former-commit-id: 7daadae789cdca6f0eb0c3f553737d4f8efc0566
2021-09-10 00:39:47 +00:00
John Sully
5eda1c5b42 Don't zero out potentially long buffers
Former-commit-id: 99eb47e129a3cd555914d4816febb02f0058253a
2021-09-10 00:38:49 +00:00
John Sully
ffcb77bc8d In single thread mode don't batch
Former-commit-id: b1cb230690a584b8bfe7f433fc0ca0320877ebd3
2021-09-10 00:38:08 +00:00
John Sully
7e482eb71c Merge branch 'keydbpro' of https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro into keydbpro
Former-commit-id: 026e939db2897701d936487ca30dd1c30feb299b
2021-09-09 19:35:08 +00:00
malavan
7a97b8aeb2 Merge branch 'keydbpro' of https://gitlab.eqalpha.com/keydb-dev/KeyDB-Pro into keydbpro
Former-commit-id: f0025394aed6f72a8c678be0da7c42d5e4fad1d9
2021-09-08 21:16:41 +00:00
malavan
dab32408c3 add command arg to clientArgs helper
Former-commit-id: b6f388ee3bd269bd8373ea16adb379ec6922ee0a
2021-09-08 21:16:04 +00:00
jsully
91ec5dffa2 Merge branch 'async_mget' into 'keydbpro'
add async mget

See merge request keydb-dev/KeyDB-Pro!38

Former-commit-id: e315b39f4779d530f5ab93e1f15915211e6706e2
2021-09-08 19:08:23 +00:00