fix: make sample size reporting in metrics more congruent/deterministic #17
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.
with the enqueue intent/reality.
When adjusting the interval task size over time there has been a known indeterminate behavior. If the user defined configuration manager of the runner is interested in adjusting task count per interval from 3, to 9, to 27 the metrics reports may go from reporting groups of 3 to groups of 27 and skip over one or more groups of the middle task count intent size (9).
This change adjusts the logic to be 1-1 or 100% deterministic with load generation task count blocks without sacrificing much efficiency on reporting statistics per interval given existing back-pressure logic.
This is achieved by using a single slice of ints in a circular buffer fashion that takes constant time to read and write. Overflows of this buffer are not possible given other assurances that exist in the code.