- 22 Feb, 2021 2 commits
-
-
Greg Femec authored
When a database on a 64 bit build grows past 2^31 keys, the underlying hash table expands to 2^32 buckets. After this point, the algorithms for selecting random elements only return elements from half of the available buckets because they use random() which has a range of 0 to 2^31 - 1. This causes problems for eviction policies which use dictGetSomeKeys or dictGetRandomKey. Over time they cause the hash table to become unbalanced because, while new keys are spread out evenly across all buckets, evictions come from only half of the available buckets. Eventually this half of the table starts to run out of keys and it takes longer and longer to find candidates for eviction. This continues until no more evictions can happen. This solution addresses this by using a 64 bit PRNG instead of libc random(). Co-authored-by:
Greg Femec <gfemec@google.com> (cherry picked from commit 266949c7)
-
filipe oliveira authored
Fix the pointers to the slot hash tags in the case of prefixed commands usage i.e. AUTH / SELECT It adjusts the pointers to the slot hash tags in the case of prefixed commands usage as soon as we get the 1st reply (same like we already did for the random strings within the command ) (cherry picked from commit efccd635)
-
- 27 Oct, 2020 1 commit
-
-
filipe oliveira authored
Fixed bug concerning redis-benchmark non clustered benchmark forcing always the same hash tag {tag} (#7931) Adding the ":{tag}" only if --cluster is used, so that when used against a proxy it generates traffic to all shards. Co-authored-by:
Oran Agra <oran@redislabs.com> (cherry picked from commit 6cf23d66)
-
- 01 Sep, 2020 3 commits
-
-
zhaozhao.zz authored
(cherry picked from commit ff1e4a70)
- 20 Jul, 2020 1 commit
-
- 22 May, 2020 2 commits
- 09 May, 2020 1 commit
-
-
ShooterIT authored
-
- 08 May, 2020 1 commit
-
-
Benjamin Sergeant authored
-
- 22 Jul, 2019 1 commit
-
-
antirez authored
This is extremely useful in order to simulate an high load of requests about different keys, and force Redis to track a lot of informations about several clients, to simulate real world workloads.
-
- 05 Jun, 2019 1 commit
-
-
artix authored
-
- 26 Apr, 2019 2 commits
-
-
vattezhang authored
-
vattezhang authored
-
- 24 Apr, 2019 1 commit
-
-
git-hulk authored
-
- 08 Apr, 2019 1 commit
-
-
antirez authored
-
- 13 Mar, 2019 1 commit
-
-
vattezhang authored
-
- 12 Mar, 2019 1 commit
-
-
artix authored
Fixes issue #5912
-
- 08 Mar, 2019 1 commit
-
-
artix authored
-
- 07 Mar, 2019 2 commits
- 01 Mar, 2019 12 commits
-
-
artix authored
-
artix authored
-
artix authored
-
artix authored
-
artix authored
-
artix authored
-
artix authored
-
artix authored
-
artix authored
- MOVED or ASK replies are now handled in cluster mode. - Only the first slot per node is used in cluster mode. - Mutlithreading: reduced usage of mutexes in favor of atomic vars.
-
artix authored
-
artix authored
-
artix authored
-
- 26 Feb, 2019 1 commit
-
-
Madelyn Olson authored
-
- 18 Feb, 2019 1 commit
-
-
vattezhang authored
When we run benchmark but forget to set the right requirepass, benchmark should return error.
-
- 14 Feb, 2019 1 commit
-
-
antirez authored
Reltaed to discussion and PR #5840.
-
- 13 Feb, 2019 2 commits
-
-
Madelyn Olson authored
-
Madelyn Olson authored
-
- 03 Jan, 2018 1 commit
-
-
zhaozhao.zz authored
-