[rules-users] Drools Flow: Skipping some LHS evaluations attime of insert

madchen k.cheung at accenture.com
Thu Apr 8 16:24:33 EDT 2010


Okay cool, thanks for the advice. I think I have a much better idea of how
the algorithm behind drools works now. So if I understand it right, the Rete
Algorithm operates on pattern matching and nodes. Basically, Drools will
create a node for every object inserted that is checked against a rule. If
multiple objects of the same type are inserted, they can just share the same
node. Also Drools keeps a hash table of comparisons of specific object
elements so that if you had something like rule 1 activates when
account.type = checking and rule 2 activates when account.type = savings,
the fact would only propogate through relevant nodes. In that sense, Drools
tries to match every inserted object against every rule, but it caches a lot
of results of evaluations.

Therefore, if you insert a lot of the same object into Drools, the runtime
will not increase that much since the nodes will already have been created
and there will be a lot of node sharing. Also the evaluations will be cached
for quick access.

To answer your question, I used JunitPerf to do some preliminary testing on
drools and I wanted to see if I could optimize it in any way.
-- 
View this message in context: http://n3.nabble.com/Drools-Flow-Skipping-some-LHS-evaluations-at-time-of-insert-tp704324p706912.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list