A first good topic, now that we build and propagate tuple sets, is can we parallelism our
joins?
Look at the insert loop, on line 94. So it iterates and builds a resulting tuple set,
which is eventually propagated. Can that set be built in parallel?
https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/jav...
The key aspect is the iterator right memory. While that memory may or may not be indexed,
it always returns a list. In the case of indexing, the list will sublist for that overall
memory.
Ideally those lists will be adaptive, only turning on parallel iteration when appropriate
(enough joins), while trying to avoid any additional cost when parallel iteration is not
used. Note currently all lists, are liked lists - we do not use arrays.
Once that works, the other methods, right insert, update and delete can all be
parallelized.
Mark
On 12 May 2014, at 00:00, Mark Proctor <mproctor(a)codehaus.org> wrote:
If anyone is interested in helping out on our next generation rule
algorithm, we’ll offer personal mentoring to get you started on your way. Just ping my
email directly, to discuss:
http://blog.athico.com/2013/11/rip-rete-time-to-get-phreaky.html
Mark