Core is not indexing beta memory for Strings and Dates
------------------------------------------------------
Key: JBRULES-598
URL:
http://jira.jboss.com/jira/browse/JBRULES-598
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Reteoo
Affects Versions: 3.0.5
Reporter: Edson Tirelli
Assigned To: Edson Tirelli
[19:36] <edar> I think that you need to see the rule - just a sec....
[19:37] <edar> URL:
http://rafb.net/p/bnWvC837.html
[19:37] <tirelli> ok, what is the question?
[19:38] <edar> The example program seems to be iterating through all instances of
MappedPID when, in this case, there is only a single instance that will satisfy a given
BloombergEquityPrice
[19:38] <edar> I was expecting MappedPID to be indexed on cusip
[19:39] <edar> What I mean is that given a BloombergEquityPrice with ID_CUSIP=12345,
there's only a single MappedPID with that cusip
[19:40] <tirelli> yes, this should be using indexing
[19:40] <edar> Good :-)
[19:40] <edar> Whew.....
[19:40] <tirelli> what version of jbrules are you using? how do you know it is
iterating over them all?
[19:41] <edar> In my test, I can vary the number of instances of MappedPID and see
that the test run time varys proportionally with the number of MappedPID instances.
[19:41] <edar> I'm using the latest download from JBoss
[19:41] <tirelli> stable, you mean? (3.0.5)
[19:42] <edar> yes, I just checked, 3.0.5
[19:42] <edar> I can easily package up my test case and send it to you if you want.
[19:42] <tirelli> ok, depends where you are taking your times
[19:42] <tirelli> please :)
[19:42] <tirelli> it will be faster
[19:42] <tirelli> also, how many instances of BloombergEquityPrice are you
asserting?
[19:43] <edar> I'm just looking at the total elapsed time for the entire process
and then calculating how many 'mappings' per second.
[19:43] <edar> I'm asserting 10K MappedPID and 10K BloombergEquityPrice. It only
takes sub-seconds to assert all of the MappedPID
[19:43] <tirelli> it's important to note that the assert time will increase with
additional assertions...
[19:44] <edar> The assert time is minimal. If I just take out the mapping part of
the rule, the asserts are VERY fast.
[19:44] <tirelli> so, if you exclude the assert time, the variation in
matches/second should not be that much...
[19:44] <tirelli> edar, best way to check is disable indexing and run again
[19:45] <tirelli> you will see a big difference if indexing is turned off
[19:45] <edar> It's huge. For example, for 1K prices/mappings, I see about
4500K/second mappings. For 10K of each, I see 300/second
[19:46] <edar> I have tried all of the variants of indexing with about the same
results
[19:46] <edar> Is there any kind of logging that will show me exactly what is going
on with indexing and if it is being used?
[19:47] <tirelli> edar, run a test with -Dorg.drools.reteoo.beta.index-right=true
and another with -Dorg.drools.reteoo.beta.index-right=false
[19:47] <tirelli> what is the difference?
[19:47] <edar> I did that and I saw, basically, no difference.
[19:47] <edar> I have the exact numbers here. Just a sec.
[19:47] <tirelli> hmm... strange... in this case we may have a problem
[19:47] <tirelli> can you send me your test?
JBoss Rules 3.0.5 is not indexing beta memory for String and Dates. Add support for that.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira