[rules-users] Bulk-Retract speed conundrum

djb dbrownell83 at hotmail.com
Wed May 5 11:05:56 EDT 2010


Hi Drools aficionados,

This is further to my request to improve speed.  As requested previously, I
am providing an example rule.  

So, I found that by only retracting facts after processing multiple claims,
instead of after every claim, I managed to improve speed from 300ms per
claim to 50ms!  We need it to be sub-170ms to be a viable option.

But, I need to retract facts.  As you can see, if I add new Claim data, it
might match the last guy's claim data (Bad!).  It would appear that
'disabling' the data would require an update and take as much time as a
retract.  

So, is there any way around this?  Am I stuck with 300ms per claim?  Would
changing to sequential stateless session be possible, or worthwhile?  If I
can't improve the speed, I will have to advice against Drools for the
project.

regards,
Daniel


---------------------
My rules look like this:

rule "RULE_2090"
when
	$cl: ClaimLine(historic == false, code == 000000003908, type == "T")
	$historic: ClaimLine(historic == true, code >= 000000000052 && <=
000000000052, type == "P", $dt : date)		
	eval(Utilities.isWithinTimePeriod($dt, $cl.date, "Y", "99"))
	$historic_many: ArrayList(size >= 0) from collect(ClaimLine(historic ==
true, code >= 000000000052 && <= 000000000052, type == "P"))
then
	String ruleName = drools.getRule().getName();
	results.addMessage(ruleName, "000000003908","Only 1 test per day                              
");
	results.setRefer("R");
end


-- 
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Bulk-Retract-speed-conundrum-tp779188p779188.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list