redis / redis/node-redis

Performance degradation from 3.1.2 to 4.2.0

Open
#2,207 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Bug Performance stale
Dominant language
TypeScript
Stars
17.6k
Forks
2k
Avg merge
2d 3h
Merged PRs (30d)
40

Description

We are attempting to upgrade from redis 3.1.2 to 4.2.0, but in our testing, we observed a throughput degradation with the upgraded version. As I was investigating, I found the benchmarks in this project, but it appears that the tests favor 4.x, as they take advantage of automatic pipelining, while the v3 tests were not executing as a pipeline. When I corrected for this, I was able to reproduce the performance reduction. I also created a separate project to run a number of performance tests, which suffered similar results.

Forked branch containing the changes to the node-redis benchmarks:
https://github.com/jspitzig-cribl/node-redis/tree/benchmark-pipelining

Performance test project:
https://github.com/jspitzig-cribl/redis-perf-comparison

Perhaps there is a mistake or misunderstanding in my tests. If this is the case, please let me know.

Environment:

  • Node.js Version: v14.18.3
  • Redis Server Version: 6.2.5
  • Node Redis Version: 4.2.0
  • Platform: Ubuntu 22.04, MacOS 12.3.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the node-redis benchmarks with the benchmark-pipelining branch, then run the redis-perf-comparison project under the listed Node.js, Redis, and node-redis versions. Done means determining whether the regression comes from the benchmark methodology or the client implementation, with a reproducible finding and an agreed next step.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, redis, typescript
Domain
backend, performance, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.