My rules engine test showed virtually no difference between Rete and Sequential execution modes: 3.44s for Rete while 3.50s for Sequential. Those are the average timing from several runs, each with 1,000 rule execution calls. Since I do not have a controlled environment, the difference seems insignificant. (The other rules engine I tested showed huge improvement for the same rule set comparing Sequential with Rete).
The following code segments show how RuleBaseConfiguration is set and the rule execution. Traced into the code a little bit, and did see the sequential flag set and the order() method was called. Please advise if this is the proper way to set sequential. Otherwise, I would just conclude that sequential mode has no effect for this particular rule set under Drools. I would like to add that even without sequential, Drools performance was fantastic. Thanks, -Ming /** * Creates a RuleBase instance with the given package object and the sequential execution flag. * @param pkg * @param sequential true for sequential mode, false defaults to Rete * @return the created RuleBase with the given package and execution mode. * @throws Exception */ private static RuleBase createRuleBase(Package pkg, boolean sequential) throws Exception { RuleBaseConfiguration conf = new RuleBaseConfiguration(); conf.setSequential(sequential); RuleBase rb = RuleBaseFactory.newRuleBase(conf); rb.addPackage(pkg); return rb; } // code segments for rule execution StatelessSession session = rulebase.newStatelessSession(); StatelessSessionResult result = session.executeWithResults(list); _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users