15167 Commits

Author SHA1 Message Date
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
benschermel
ae6e4a3f1d update deb packaging to build with systemd flag
Former-commit-id: d7bd4f7a1c8d6195b60ccf6417ebb77fba097398
2021-09-08 02:28:17 +00:00