Create metrics in a queue which can be processed in advance of the write queue#960
Merged
deniszh merged 2 commits intographite-project:masterfrom Aug 24, 2024
Merged
Conversation
The old behaviour would increase _tokens on every call to drain; now we will do it only if there are not enough to service the request. As a side-effect, we now have .peek(), which is cheap, non-blocking and non-destructive.
Based on a patch at graphite-project#888 by ploxiln; I've fixed the blocking issue and also made it drop metrics only if it comes to write them after continually failing to have enough create tokens. If carbon is configured with a create rate of 0, this deque will grow indefinitely. In pretty much all other circumstances, behaviour should be pretty similar.
Member
|
Looks great, merging this |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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've had this on a moderately sized production system for some time now and haven't spotted any problems. I started with work on #888 by @ploxiln and the original work by @piotr1212, but this approach is slightly different, and happens to have a slightly more readable diff. Differences:
droppedCreaterather than an exception, I think.There are a few behaviour changes:
Deprecates #888
Fixes graphite-project/graphite-web#629