Project

General

Profile

Actions

Architecture #4781

closed

Architecture #4778: Optimize promise generation algorithm: Rudder variables lookup

Remove rule variable kind: {rudder.ruleid.XXX}

Added by François ARMAND over 10 years ago. Updated over 9 years ago.

Status:
Released
Priority:
1 (highest)
Category:
Performance and scalability
Target version:
Effort required:
Name check:
Fix check:
Regression:

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!

Actions #1

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
Actions #2

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).

Actions #3

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.

Actions #4

Updated by François ARMAND over 10 years ago

  • Status changed from Pending technical review to Pending release
  • % Done changed from 0 to 100
Actions #5

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.

Actions #6

Updated by Benoît PECCATTE over 9 years ago

  • Tracker changed from Enhancement to Architecture
Actions

Also available in: Atom PDF