Rulebase Execution Optimization

Typically, rulebase execution on a single record executes quickly and is a light weight job. For the cases where the overall bundle size is big, rulebase execution on the complete bundle has been seen as a contributor to execution time and eventually throughput.

You can have more control over processing orders. You can define dependencies in rulebases and can utilize parallel execution within a bundle. With no dependencies to define, almost all records in a bundle can be processed in parallel to optimize overall rulebase execution time.

The following are some of the directives introduced to have more control over rulebase execution and optimization:
  • Evaluate Parent First (parentFirst)
  • Can Parallelize (parallelize)
  • Can Skip If no Change (skipIfNoChange)

For example, updating one or few records from a bundle results into execution of rulebase on all records in a bundle. With proper dependencies defined, execution can be optimized by utilizing parallel execution. Additionally skipIfNoChange directive can be used to skip complete rulebase execution when the record is not modified.

The two following properties have been added at the constraints level for performance improvement:
  • Parallelize
  • Active

For example, if the parallelize flag is enabled, the constraint can be executed in parallel with other constraints in rulebase. Disabling the active flag will not evaluate the respective constraint.

For more information on release execution optimization, see the "Rulebase Execution Optimization" section in TIBCO MDM Studio Rulebase Designer User's Guide.