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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users