Hi people,
We are talking about several things at the same time here, so we need to
organize our answers to not turn information into noise.
* Me and Wolfgang were suggesting that Krishna evaluates his need for a
rules engine. There are several requirements that are met by such a product,
but if all he needs is to execute a piece of code based on the value of an
attribute, there are simpler alternatives. But of course, only Krishna,
knowing all of the requirements can know what is best.
* Krishna's problem is that compilation is taking too long or not finishing
at all. The example program I sent in my e-mail, shows that it is possible
to compile 20k rules and load them in memory, so it is obvious that there is
something different in Krishna's program, but we don't have any more info on
what it could be.
* Felipe: since we are talking about compilation time only (not runtime),
and since Drools handles the consequence block as a black box, there
shouldn't be any noticeable difference in compiling a single System.out call
or an object instantiation with a few attribute setting calls. The real
overhead is in initializing the compiler to compile 20k different blocks of
code. The complexity of the block code has little impact (although obviously
there is a bit higher cost) on the compilation time compared to everything
else.
* djb, Thomas is correct. The whole point of Rete is to only check and
reactivate rules that could be impacted by each fact, minimizing the cost of
rules re-evaluation. This goes back to what me and Wolfgang were talking
about. If you would make a naive algorithm with 20k "if"s, all of them would
be executed for each new fact, causing the application to run with very poor
performance. Although, it is possible to use simple techniques and still get
good performance without using Rete ***if*** your rules are simple enough
that you can manage them. Usually, it is best to just use a rules engine.
Hope comments above help to clarify things.
Edson
2010/2/8 Swindells, Thomas <TSwindells(a)nds.com>
But isn't the way Rete work is that it creates a decision tree to
work out
which rules to evaluate. Right at the top of the tree will be a check on
the fact type that is being inserted, as the fact being inserted doesn't
match against any of the 20k rules (it is a totally different object type)
the evaluation will finish immediately with no further rule evaluations.
Thomas
> -----Original Message-----
> From: rules-users-bounces(a)lists.jboss.org [mailto:rules-users-
> bounces(a)lists.jboss.org] On Behalf Of djb
> Sent: 08 February 2010 14:41
> To: rules-users(a)lists.jboss.org
> Subject: Re: [rules-users] Reading DRL file with large number of rules
>
>
> I second Felipe -
> since every time you modify working memory (eg. insert), it refires all
> rules, so for 20k rules, you're looking at something like 350-400 million
> firings :) Or, without no-loop, it will never end. Though perhaps
salience
> skips this second problem.
>
>
>
>
> --
> View this message in context:
http://n3.nabble.com/Reading-DRL-file-with-
> large-number-of-rules-tp190032p192446.html
> Sent from the Drools - User mailing list archive at
Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
**************************************************************************************
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmaster(a)nds.com and delete it from your system as well as any copies.
The content of e-mails as well as traffic data may be monitored by NDS for
employment and security purposes. To protect the environment please do not
print this e-mail unless necessary.
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18
4EX, United Kingdom. A company registered in England and Wales. Registered
no. 3080780. VAT no. GB 603 8808 40-00
**************************************************************************************
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmaster(a)nds.com and delete it from your system as well as any copies.
The content of e-mails as well as traffic data may be monitored by NDS for
employment and security purposes.
To protect the environment please do not print this e-mail unless
necessary.
An NDS Group Limited company.
www.nds.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com