That is a half-truth (if such thing exists...) :)
    You will indeed avoid the beta evaluations (joins) that are more expensive than alpha evaluations, and also prevent the rule activations. But alpha evaluations will still happen. So, I would say, you would prevent 90%(?) of the engine work with such strategy, but there would be still a minor 10%(?) cost, that may be very acceptable in your case. The percentages are pure guess, since they will vary greatly depending on your rules and the CEs you are using, but they give you a general idea.


2007/8/15, Yuri <>:
Edson Tirelli <tirelli <at>> writes:
>     Yuri,    Right now, the only way is to work with different rule bases and
working memories. Even using agenda-groups or rule-flow, rules are still being
eagerly evaluated, as this is how standard Rete works.
>     The problem of creating and canceling too many activations is a known
problem and the only way around it right now is sequential mode, but sequential
mode has some restrictions on what you can do. For instance, you must work with
a stateless working memory and can not modify/retract facts in your rules to
work with sequential mode, but it will give you big performance boosts.
>     We are evaluating the possibility of creating physical network partitions
for next version, but that will require some R&D yet.    []s    Edson

Edson, thanks for the explanation!

At this point we are considering a scheme to create additional working memories
and have a way to propagate inserts/updates/retracts selectively.

Is my assumption correct that if I make sure a "barrier" column/constrains sits
at the top of the rete network that I could delay the insertion of the "barrier"
and achieve what I am looking for without having to split the working memories?

rules-users mailing list

  Edson Tirelli
  Software Engineer - JBoss Rules Core Developer
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @