Architecture #4781
closedArchitecture #4778: Optimize promise generation algorithm: Rudder variables lookup
Remove rule variable kind: {rudder.ruleid.XXX}
Description
Remove the use of the rule kind of variable because:
- it's inefficient to calculate (lots of data to get & process, even for simplest of these variables, with lots of error cases to handle)
- it's very complexe (so much that a whole subcategory for multivalued section is not handled)
- it breaks the {Group, Directive} => Rule dependency tree, and creates a dependency circle {Group, Directive} => Rule => Directive (authorization impossible, complexity, etc)
- it is used in 2 or 3 places, and only internally,
- simpler and more efficient solution can be used (parameters, cfengine variables) or developped (tags).
Remove them!
Updated by François ARMAND over 10 years ago
- Status changed from In progress to Pending technical review
- Pull Request set to https://github.com/Normation/rudder/pull/501
Updated by François ARMAND over 10 years ago
For now, the process generation time difference is really small (some percent, in the good direction).
Updated by François ARMAND over 10 years ago
- Assignee changed from François ARMAND to Nicolas CHARLES
This issue is deeply linked with #4782 which split the parsing and interpretation part of interpolated variable in two. It is moslty cleaning of anything related to ${rudder.ruleid...} kind of interpolated variable, and by itself, it doesn't bring much improvment, safe with cleaner code (much simpler code for system variables for example).
Merging it begore https://github.com/Normation/rudder/pull/507 will alows to take https://github.com/fanf/rudder/commit/cfb59b48822081e2796d2b2f53261bbdf90cf0d9 (the actual interpolation compiler + big refactoring) in isolation, which is by itself a rather big piece of code.
Updated by François ARMAND over 10 years ago
- Status changed from Pending technical review to Pending release
- % Done changed from 0 to 100
Applied in changeset 332477e1b3b34a5b748c4c76277024b62fae9e99.
Updated by Vincent MEMBRÉ over 10 years ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 2.11.0~beta1 that was released yesterday.
- announcement
- changelog
- Download information: https://www.rudder-project.org/site/get-rudder/downloads/
Updated by Benoît PECCATTE over 9 years ago
- Tracker changed from Enhancement to Architecture