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/java/org/drools/core/phreak/PhreakJoinNode.java

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 <mproc...@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


_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev

Reply via email to