History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: DROOLS-463
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Michael Neale
Reporter: Galvin Hsiu
Votes: 1
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
drools-legacy

Performance problem when using JNDI binding for serialization

Created: 01/Dec/05 03:32 PM   Updated: 18/Dec/05 08:25 PM
Component/s: semantics.java
Affects Version/s: 2.1
Fix Version/s: 2.5

Time Tracking:
Not Specified

Environment:
Weblogic 8.1
Windows XP


 Description  « Hide
In the drools documentation for "Using Rules at Runtime" it states -

A RuleBase may be a managed object which is deployed by an administrator within a JNDI directory. This method of deployment allows an application to be isolated from changes in the rules. The rules can be easily altered and redeployed, enabling an on-the-fly modification of the behaviour of an application (etc).

However, in the semantic java module, there are a number of classes which contains the transient fields:

JavaCondition
JavaBlockConsequence
JavaFunctions
PythonInterp

This means whenever a rulebase is bound to JNDI tree, these java conditions and block consequences need to be reconstructed whenever a rulebase is looked up or materialized from JNDI, triggering a janino compile call.

Under high load, the majority of time is spent in the janino compile method whereas if the JavaCondition / JavaBlockConsequence was declared nontransient, the compilation step can be skipped, improving performance under load.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Michael Neale - 01/Dec/05 05:27 PM
Have upgraded this to Critical. It is important to resolve this - I have been contacted by others about this. Need to look at best way of using 2.5 compiled rulebase feature with and without JNDI, and update the documentation to reflect this.

Must avoid rebuilding the rulebase like this each time, as it just won't scale.

NOTE: 2.5's ".ddj" compiled rules will really help this problem. So once 2.5 comes out may be a case of updating the doco.


Michael Neale - 18/Dec/05 08:25 PM
some major surgery in 2.5 done for this.