Repository navigation
fix(agent): persist to Redis off the core lock and drain pending writes on stop - #54
Merged
Merged
Conversation
Persists are capped at buffer_size in flight (shared by events and metrics). Past the cap the record stays in memory only, counts toward redis_persist_failures, and one warning is logged per degradation episode. A write whose record left the buffer before the task started is skipped. Membership is tracked in a key map instead of scanning the buffer.
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.
Closes #53
I moved the Redis persist off the core lock into tracked background writes that are drained on stop. In-flight writes are capped at buffer_size (shared by events and metrics); past the cap the record stays in memory only, counts toward redis_persist_failures, and one warning is logged per degradation episode. A write whose record left the buffer before the task started is skipped, and membership is tracked in a key map instead of scanning the buffer.