Repository navigation
Rate regulator: windows start at epoch multiples of resetIntervalMs (E91) - #117
Merged
Merged
Conversation
…E91) Engine 1.1.152 zeroes an interval counter at each multiple of its own interval since the Unix epoch, so regulator windows line up with the clock on every node, the first window after a start is partial, and a policy reload still does not start one. config.yaml and schema.json carry the modules text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Engineering ask E91, the wording that ships with engine 1.1.152 (log-10x/l1x-inc#238). Comments and schema text only. The modules twin is the
docs/e91-window-wordingbranch in log-10x/modules; either can merge first.What changes
pipelines/run/receive/rate/config.yaml(resetIntervalMscomment): "Windows start at each multiple of the interval since the Unix epoch, so every node's windows line up with the clock, the same windows for all patterns and services. The first window after a start is partial, and a policy file reload does not start a new window."pipelines/run/receive/rate/schema.json: the same sentences in theresetIntervalMsdescription, as the modulesrateReceiverResetIntervalMsdoc now reads.Engine facts (l1x-inc 68cb4929)
AtomicCounterRegistry.java:46-48: the next reset of an interval is(floorDiv(time, interval) + 1) * interval, an epoch multiple;:191-196(pruneEntry) zeroes a counter only when the prune time is a multiple of its own interval.EventRegistryContext.java:81-83:reset()resets the lookup registry only, so a policy reload does not start a window.🤖 Generated with Claude Code