[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.