9546 Commits

Author SHA1 Message Date
Oran Agra
f1ff72c7a3 Fix race in client side tracking (#9116)
The `Tracking gets notification of expired keys` test in tracking.tcl
used to hung in valgrind CI quite a lot.

It turns out the reason is that with valgrind and a busy machine, the
server cron active expire cycle could easily run in the same event loop
as the command that created `mykey`, so that when they key got expired,
there were two change events to broadcast, one that set the key and one
that expired it, but since we used raxTryInsert, the client that was
associated with the "last" change was the one that created the key, so
the NOLOOP filtered that event.

This commit adds a test that reproduces the problem by using lazy expire
in a multi-exec which makes sure the key expires in the same event loop
as the one that added it.

(cherry picked from commit 9b564b525d8ce88295ec14ffdc3bede7e5f5c33e)
2021-07-21 21:06:49 +03:00
Maxim Galushka
9562821f12 redis-cli: support for REDIS_REPLY_SET in CSV and RAW output. (#7338)
Fixes #6792. Added support of REDIS_REPLY_SET in raw and csv output of `./redis-cli`

Test:

run commands to test:
  ./redis-cli -3 --csv COMMAND
  ./redis-cli -3 --raw COMMAND

Now they are returning resuts, were failing with: "Unknown reply type: 10" before the change.

(cherry picked from commit 96bb078577ce2b0d093c873faae5d3ecca26a1de)
2021-07-21 21:06:49 +03:00
malavan
69f3e7c802 remove duplicate function
Former-commit-id: 81cf9979ed1d86d0a690e5cd27ed018b125b1d58
2021-07-21 16:00:24 +00:00
malavan
99a165e0f6 add stacktrace message
Former-commit-id: 5be1620629ce8de7f419bc001f18d22d6eb4fa8a
2021-07-19 23:17:18 +00:00
John Sully
ea19d31df8 Merge branch 'keydbpro' into keydbpro_collab
Former-commit-id: e4e5c6696c6d831924f314a198b266b10d831e14
2021-07-19 20:51:27 +00:00
John Sully
bacaa204cf Disable async rehash during load as it interferes with eviction
Former-commit-id: 54b4f39e9d634bf53b04cd94433b051b14323bc6
2021-07-19 18:17:54 +00:00
John Sully
345ec75a36 We need to free in order since the first big async free is likely the largest, so don't set the hipri bit
Former-commit-id: 76a9cefa94e0f446e12a690909cbda15d03ca211
2021-07-19 18:01:39 +00:00
malavan
16f361abf6 dd comment and set eip unused
Former-commit-id: 685b87e2ef4f67cd599b12e38b08f5b70b7a6c58
2021-07-19 17:32:38 +00:00
malavan
70cb3267de dd comment and set eip unused
Former-commit-id: 72429c21067318696897c26783f654eb7bc6040f
2021-07-19 17:31:24 +00:00
malavan
9e411426f2 dd comment and set eip unused
Former-commit-id: 7707fe15a9c9774820b3afb9837a50e73c40a5a8
2021-07-19 17:29:43 +00:00
malavan
abf2114117 add backtrace for alpine using libunwind
Former-commit-id: c583ffff412b9df705b7c96e68e3908b645c7d43
2021-07-19 17:20:52 +00:00
John Sully
88f5bf1d90 We need to periodically flush the GC or we'll end up blocking with a huge backlog at the end of load
Former-commit-id: 29c0bf79ad1a810e808790de2f7db24f3cc603e8
2021-07-19 16:50:48 +00:00
John Sully
d3793efb33 Info command should show how many keys are cached in RAM vs storage provider
Former-commit-id: 08597bee69bc16ca7c3d5ff31020472774c6eec9
2021-07-19 15:11:33 +00:00
John Sully
614860ce3c StorageCache dtor leaks
Former-commit-id: 0262c4dc76a320141b8a4454df2f6baab4f74ab3
2021-07-19 15:10:48 +00:00
John Sully
4000334b1f Do not resize replica buffer past the max client limit
Former-commit-id: ba116500ca4fd53e4e40f04fc33981e60bb21ab7
2021-07-18 20:48:08 +00:00
John Sully
5f72ce9317 Return the ring buffer to its original size if we temporarily resized it
Former-commit-id: a12ce4a0d105bf7d6ccff95f7dc0044c4676b0a7
2021-07-18 20:45:32 +00:00
John Sully
0b220bddc7 Do not update batch variables when not in a batch
Former-commit-id: ad1e0286cf9b2d9de33c65e8e798a05ead3f7d5a
2021-07-18 20:28:42 +00:00
christianEQ
43f31da324 fix warnings for mac build
Former-commit-id: 570fbd014944a655f6c8e7216f2b9226f378c7c7
2021-07-15 20:14:14 +00:00
christianEQ
a833c9b2a7 Merge remote-tracking branch 'origin/unstable' into ci-flags-fix
Former-commit-id: da1f09e9b551cacdfd24dc839ee659a5e5e1e1de
2021-07-14 22:56:15 +00:00
malavan
bfefd8a11b use INVALID_EXPIRE instead of -1
Former-commit-id: 9e45984a97a293d87474f87612204a24c831a343
2021-07-14 22:13:29 +00:00
christianEQ
f11601bcfc added REDIS_CFLAGS to makefile for backwards compatibility
Former-commit-id: b2fb4f4b9bba28f45828ead5670fc206a4c2a2f6
2021-07-14 21:51:44 +00:00
malavan
c255a454ec cleanup based on 6.2.2 merge review
Former-commit-id: 51277b17a7ab4bb5b3f06fd5af8f26257ac35a37
2021-07-14 15:22:27 -04:00
Christian Legge
5019f9c537 Merge pull request #322 from EQ-Alpha/diagnostic-tool
Basic first iteration of Diagnostic Tool

Former-commit-id: 32f5ef864e85a46ed81d3a2fdfd51d0be4f361f5
2021-07-14 14:19:44 -04:00
Christian Legge
25d992777c Merge pull request #327 from EQ-Alpha/issue323_fix
fix for #323: seg fault on expiremember

Former-commit-id: a8f28297ec1677f48e9afa9deeb3dbbd2e2f41d9
2021-07-12 16:54:31 -04:00
christianEQ
229bb85dec tabs -> spaces
Former-commit-id: 0ae13c973166106efd17aa6b5dfeb80236ed862c
2021-07-12 18:55:44 +00:00
John Sully
d3d7c3a865 Merge branch 'keydbpro' into keydbpro_collab
Former-commit-id: 8eec3e948ffd204bb2d6170ad3ca42fa8a2c6d8b
2021-07-09 05:25:04 +00:00
John Sully
2616ed75cc Merge branch 'unstable' into keydbpro
Former-commit-id: 81ded8a35daa5100cac7299a7d0b5f43ee7ac74f
2021-07-09 04:41:47 +00:00
John Sully
c0160a4415 Merge tag '6.2.3' into unstable
Former-commit-id: 1895dbb7680fa9aadf6040912e89c733abc8c706
2021-07-09 04:40:31 +00:00
christianEQ
cf23416296 added eq alpha copyright
Former-commit-id: a6cbbd0f318f3a091ed23dbdbcc1593f32fa5e25
2021-07-08 02:58:18 +00:00
christianEQ
145015dc51 fix for #323: seg fault on expiremember
Former-commit-id: f1f52af9cfcac03a1af84265f7e5cb2172e8ebde
2021-07-08 02:50:05 +00:00
christianEQ
ea95e6c406 various branding and cleanup fixes
Former-commit-id: e3c619eca4755c96af83e1959a6ea5ba95734e93
2021-07-08 02:46:42 +00:00
jsully
ed6dda0887 Merge branch 'license_status_fix' into 'keydbpro'
license status OK if not checking license

Closes #14

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

Former-commit-id: f66d0970b1eb9be50210a88bf773769a40513521
2021-07-07 18:07:30 +00:00
John Sully
24a24dd082 Merge branch 'repl_backlog_rework' into keydbpro_collab
Former-commit-id: 0983e195757d92d6cbcb63436a1332a6b80e275c
2021-06-30 06:36:45 +00:00
John Sully
6ba0e699d4 Merge branch 'keydbpro' into keydbpro_collab
Former-commit-id: ecc69952dfd1f145e1aff12bca56a4b4e102d669
2021-06-25 06:21:58 +00:00
John Sully
0d8da2c350 Avoid taking locks when we don't need to
Former-commit-id: 0d8d3ee9e217cd1f1366a117e6e212f610a028e1
2021-06-25 06:11:14 +00:00
John Sully
165e73353a OPTIMIZATION: Only notify the condition variable when needed
Former-commit-id: 11f07b49c613f54cef682da1e3c8fc54918809b0
2021-06-25 06:11:01 +00:00
John Sully
8db07641ad Reenable LTO
Former-commit-id: e7c1e1c9d8021f48c4081a9dfb84dba9da2521fc
2021-06-25 06:10:13 +00:00
vivek
0e953fb916 Primitive implementation of bypassing client buffer, stats are all messed up and print statements everywhere
Former-commit-id: 59b2ae8ff451f8a5ac2f3baf3c7b509f6872895e
2021-06-25 03:10:56 +00:00
John Sully
5949e253ca remove unnecessary newline
Former-commit-id: 532af9cd0286ac6ece6f401c42aea18e36d16f7c
2021-06-25 02:46:32 +00:00
John Sully
e6a82692b7 Avoid holding the lockPendingWrite for too long and deadlocking due to lock inversion
Former-commit-id: a4b49fbec60e2333a4407d24383ae204d5d2b413
2021-06-25 02:31:17 +00:00
John Sully
815ebe1e6b Remove fPendingReplicaWrite flag which can instead be calculated on demand
Former-commit-id: ae26afd13f955eb230b5c2cab20ec90db9b714ad
2021-06-25 01:54:38 +00:00
christianEQ
e5939c5de9 removed unused command line options
Former-commit-id: 57e59d97db3674eb241f9bd0836e38f4c8356cac
2021-06-22 17:13:35 +00:00
christianEQ
6c5246fb09 changed --ms to --time
Former-commit-id: d7cada0f38668f67eb307172a3e91599b1f00a24
2021-06-21 19:57:14 +00:00
christianEQ
59102658a3 added more verbose options
Former-commit-id: fd2ac1fcfc94285cad683528f3d209b204ccfd2b
2021-06-21 18:40:37 +00:00
christianEQ
2bbb8a54fc -t threads option
Former-commit-id: 0181b0e7a17ad5f83a544401110a9eac2b292aa4
2021-06-21 18:36:21 +00:00
christianEQ
0d9e0a9039 added starting line so diagnostic tool doesnt look frozen at first
Former-commit-id: 2b5e5cfa4cf1478682c46d74436025c63ac6c217
2021-06-18 20:21:47 +00:00
christianEQ
4028d35560 Merge remote-tracking branch 'origin/unstable' into diagnostic-tool
Former-commit-id: bfb0d02622dfc9ac0c67ec68ae8a21cccd5c9004
2021-06-18 20:19:31 +00:00
christianEQ
248059e50c detect stagnating server load before 100% (diagnostic tool)
Former-commit-id: 534b70643b8f39303331048d3e86475caa08b864
2021-06-18 19:01:51 +00:00
christianEQ
b21b868de2 added config option for time to spin up new client threads (diagnostic tool)
Former-commit-id: 3d0f729572b175457d4874b6e381754ac47e9055
2021-06-18 16:58:16 +00:00
christianEQ
29e3f7da84 detect full load + server threads (diagnostic tool)
Former-commit-id: fd4ed1e425e32b628c5850e83c9ea9411c471bbe
2021-06-18 16:49:25 +00:00