1. The Performance Cost
The performance cost for a Decision Service may look something like:
2. The eXecutable Object Model and the RuleFlow
XOM type choices:
- JAVA XOM better performance
- XML XOM
- Dynamicity
- Useful in case of XML model
Ruleflow:
- Limit the size and the complexity of the ruleflow, it is interpreted.
- Always use the same engine algorithm to save memory.
3. The Engine Algorithm
Choose the correct engine algorithm depending on your Decision Service.
RetePlus (The default mode)
- Stateful application
- Rule chaining application
- May be useful in the case of many objects
Sequential
- Application with many rules and few objects
- Most of the customer cases.
- Really efficient in multi-thread environment.
Fastpath
- Application with rules implementing a decision structure and many objects.
- May have longer compilation but faster at run time.
- Really efficient in multi-thread environment.
4. Decision Server Rules Tuning
- The log level in the Rule Execution Server should be set to level Severe or Warning in the production environment to increase performance.
- This property (TraceLevel) is accessible in the resource adaptor of the Rule Execution Server or in the ra.xml.
- Tune the GC and memory size.
- Starting configuration 64bits
- -Xgcpolicy:gencon –Xmn2048M –Xmx4096M –Xms4096M
- Tune the RES pool size.
- A sizing methodology is available at: http://www-01.ibm.com/support/docview.wss?uid=swg21400803
5. Impact of the Execution Trace
6. Impact of the XOM Type
7. Remote Web Service call vs. Local call
8. Fastpath Algorithm vs. Sequential Algorithm