I am using Drools-Guvnor 5.1 release in
an enterprise application. The rules created are separated per
packages, and for each package there is a snapshot package called
LATEST. The KnowledgeAgent polls the snapshot packages
to get the latest data and load into the rule engine. Whenever there is a new rule, or
updates to an existing one, the application triggers the process of
re-creating the package snapshot: builds all the rules within the
package, and creates a new snapshot for the package.
The main problem with this approach is
that the time to build the package rules, increases quite a lot as
the number if rules gets higher. This creates a serious performance
hit in the real-time app whenever there is a change to the rules.
I sneaked a bit to the source code, and
noticed that when build package is called, Guvnor builds a new binary for all the rules
within a
package even though not all of them are modified. Would it be possible to incrementally
create/update the package binary? This would speed up
things a lot when the package has lots of rules but only one rule
changes at the time.
What is the best approach for creating
the package snapshots? The approach we've taken is to build all the
rules within a package into one snapshot, and we ran into this performance issue.
Any ideas/suggestions is much
appreciated.
Thanks,
Patricia