Synchronization is a computation-intensive and memory-intensive
process. You can improve performance by allocating sufficient resources,
restructuring the rule project, and reduce data transfer.
- Allocate sufficient resources
- Ensure that your system has enough resources. Provide adequate
heap size to both Rule
Designer and Decision
Center.
For more information, look up the topic about providing more memory
for applications in the Configuring part of this information
center that documents how to configure your application server.
Note: However,
avoid heap fragmentation by configuring certain settings of your Java™ virtual machine to this effect.
This process of configuring your JVM might require multiple iterations
of generating and analyzing the verbose:gc output
and applying its recommendations, before arriving at the optimal settings
for your environment.
- Restructure the rule project
- Restructure your rule project so that the rules are split among
multiple top-level packages. Synchronization is done at the top-package
level. Therefore, if you create all your rules under the top-level
package PackageA, all the rules are sent from Rule
Designer to Decision
Center at
the same time during the first synchronization publish.
If the
number of rules in a single top-level package is very large, then
this can be a significant bottleneck during synchronization. This
is especially true if a new rule project is being created as a result
of synchronization, either as a publish of the project from Rule
Designer to Decision
Center,
or as the creation of a new project on Rule
Designer from Decision
Center.
If you split the rules into multiple top-level packages, the amount
of memory required to send a top-level package to Rule
Designer from Decision
Center,
or conversely, is smaller because of the lower number of rules.
For
more information on rule project organization, see Guidelines for organizing your application
into rule projects
- Reduce transfer of data
- When you create a new rule project from Decision
Center in Rule
Designer,
you do not need to get the entire rule project each time you synchronize.
Instead, you can synchronize with an existing local copy of the project.
This choice significantly decreases the memory used because only the
rules that were changed are sent from Decision
Center to Rule
Designer.