[rules-users] Poor performance from a simple join

Mark Proctor mproctor at codehaus.org
Mon Dec 19 11:51:05 EST 2011


Nested accessors are not currently indexed, because we cannot assure 
their immutability:
$call.device_type

If people changed indexed nested accessors, without correctly notifying 
the engine it would result in integrity problems.

If you have a large number of these, trying flattening the model, such 
as you would do in a database.

Mark
On 19/12/2011 16:23, David Martin wrote:
> Folks:
>
> My co-workers and I have been using Drools to great success, but we 
> ran smack into a performance brick wall recently.
>
> In the example below, both BINNING_INPUT and LU_DEVICE_TYPE have large 
> numbers of associated facts in working memory (BINNING_INPUT has more 
> than 8 million facts in working memory, LU_DEVICE_TYPE about 10k.)
>
> LU_DEVICE_TYPE models a lookup table.
>
> rule "Binning for Attribute: Device_type_desc"
>   when
>     $call :
> BINNING_INPUT()
>     $device_typeLookup :
> LU_DEVICE_TYPE(
>         $call.device_type == device_type
>       )
>
>   then
>     $call.setDevice_type_desc($device_typeLookup.getDevice_type_desc());
> end
>
> It's a simple enough rule: join on the device_type field.  
> Unfortunately, this rule and a few others like it are taking FOREVER 
> to insert.  Even when I cut the number of BINNING_INPUT facts in 
> working memory down from 8M to 10k.
>
> This feels like a basic Drools question.  But I can't seem to find any 
> help from google.
>
> Please advise!
>
> Thanks in advance,
>
> Dave Martin
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20111219/443ae335/attachment.html 


More information about the rules-users mailing list