Hi all,
we observe a strange behavior with one of our rules. After deployment
and sending lots of events (~150,000 of type "a"), the server slows down
rapidly until it runs out of memory.
We checked with VisualVM which objects are filling the memory: In one
moment there were almost 14GB of NotNodeLeftTuples (88,933,186 Instances)!
This is our rule:
rule "example"
when
$evt1:EventObject(type=='a', $id:data['id'], $user:user) from entry-point
internalstream
$evt2:EventObject(type=='a', data['id']==$id, user!=$user, $user2:user)
from entry-point internalstream
not(EventObject(type=='b', user==$user, data['friendid']==$user2) from
entry-point internalstream)
then
EventObject evt = new EventObject();
evt.setType('b');
evt.setUser($evt1.getUser());
evt.put('friendid', $evt2.getUser());
entryPoints['internalstream'].insert(evt);
end
Is that behavior correct for such a size of event combinations when using a
NOT in the rule?
Thanks,
Svenja