Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing bug where sub-rule would not be considered new if its keys and… #140

Merged
merged 2 commits into from
Jan 22, 2024

Conversation

jonessha
Copy link
Contributor

… patterns were contained in its sibling sub-rules, even if no sibling contained all of the keys and patterns by itself.

Description of changes:

Fixing bug where sub-rule would not be considered new if its keys and patterns were contained in its sibling sub-rules, even if no sibling contained all of the keys and patterns by itself. This would result in that sub-rule not being matchable. To avoid adversely affecting performance, this required adding a mapping of sub-rule name to IDs in SubRuleContext.Generator. While doing this, I also moved the mapping of sub-rule ID to name out of NameState and into SubRuleContext.Generator. For most cases, this will be a net memory improvement (despite the additional mapping), as there is a single SubRuleContext.Generator at the Machine level, where as there are many NameStates at the Machine level, so the ID to name mapping would be stored redundantly many times.

Benchmark / Performance (for source code changes):

EXACT events/sec: 207871.2
WILDCARD events/sec: 153728.7
PREFIX events/sec: 204479.8
PREFIX_EQUALS_IGNORE_CASE_RULES events/sec: 205465.8
SUFFIX events/sec: 200818.1
SUFFIX_EQUALS_IGNORE_CASE_RULES events/sec: 203503.3
EQUALS_IGNORE_CASE events/sec: 179652.6
NUMERIC events/sec: 119768.4
ANYTHING-BUT events/sec: 126150.4
ANYTHING-BUT-IGNORE-CASE events/sec: 122102.0
ANYTHING-BUT-PREFIX events/sec: 133167.5
ANYTHING-BUT-SUFFIX events/sec: 131038.1
COMPLEX_ARRAYS events/sec: 26159.4
PARTIAL_COMBO events/sec: 49355.6
COMBO events/sec: 16895.4

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

… patterns were contained in its sibling sub-rules, even if no sibling contained all of the keys and patterns by itself.
@baldawar baldawar merged commit 68bdcd4 into main Jan 22, 2024
3 checks passed
@jonessha jonessha deleted the namestate-reuse-bug-fix branch January 22, 2024 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants