-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Retry batched resource slice writes more aggressively (#240)
It doesn't make sense to wait the full batch interval before retrying errors since it's unlikely that the full cost of the request was paid by apiserver if it returned an error. Essentially, the value of the batch interval is reducing load at the cost of latency. But in most cases where apiserver returns an error we don't get the benefit of reduced load, only the cost of high latency. We can improve tail latency by just using reasonable exponential backoff for the first few retries, then falling back to the batch interval after that for safety. Since the write buffer forget items on success the backoff logic only applies to errors, not requeues caused by changes enqueued concurrent with the last batch. Also adds some tooling to help uncover issues like this in the future - optional error injection at the client level. --------- Co-authored-by: Jordan Olshevski <[email protected]>
- Loading branch information
Showing
3 changed files
with
142 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters