Feat: Add rate limit to Redis client #268
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We had some issues with slow downs on workers pulling slowly from Redis.
This PR:
a. Lowers the timeout to 1 second (which is probably reasonable for a Redis command?)
b. Adds a rate limiter in the Redis client that skips the Redis lookups if more than 10 errors have happened in the last 10 seconds.
We only add the rate limit on the read operations, because they are in the critical path.
We want to attempt to keep populating the Redis cache so we can recover to a useful state after the Redis issues.
Not adding configuration just yet, but will make some follow up PRs to add metrics on this.