[jboss-jira] [JBoss JIRA] (JBRULES-3367) Planner: score calculation with plain old Java

Geoffrey De Smet (JIRA) jira-events at lists.jboss.org
Wed Feb 8 04:30:50 EST 2012


    [ https://issues.jboss.org/browse/JBRULES-3367?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12664983#comment-12664983 ] 

Geoffrey De Smet edited comment on JBRULES-3367 at 2/8/12 4:29 AM:
-------------------------------------------------------------------

The manual should clearly explains the advantages and disadvantages of each approach. Drools Expert stays the recommended default approach.

A) Drools DRL score calculation (the default, recommended way)
* Positive:
** Flexibility: score rules can be written in decision tables xls, guvnor, ...
** Fast incremental calculation for free: no need to write boilerplate code for it
* Negative:
** Learning curve for DRL
** Polygot fear (some companies don't like adding an extra language as DRL in the mix)

B) Simple Java score calculation
* Positive:
** Easy to write
** No learning curve (plain old java)
** Fast prototyping: existing score calculation code can be reused
* Negative:
** Very slow, not scalable (no incremental calculation at all)

C) Incremental Java score calculation:
* Positive:
** Very fast and scalable
* Negative:
** Users need to write a lot of difficult boilerplate code for incremental calculation.
                
      was (Author: ge0ffrey):
    The manual should clearly explains the advantages and disadvantages of each approach. Drools Expert stays the recommended default approach.

A) Drools DRL score calculation (the default, recommended way)
* Positive:
** Flexibility: score rules can be written in decision tables xls, guvnor, ...
** Fast incremental calculation for free: no need to write boilerplate code for it
* Negative:
** Learning curve for DRL
** Polygot fear (some companies don't like adding an extra language as DRL in the mix)
B) Simple Java score calculation
* Positive:
** Easy to write
** No learning curve (plain old java)
** Fast prototyping: existing score calculation code can be reused
* Negative:
** Very slow, not scalable (no incremental calculation at all)
C) Incremental Java score calculation:
* Positive:
** Very fast and scalable
* Negative:
** Users need to write a lot of difficult boilerplate code for incremental calculation.
                  
> Planner: score calculation with plain old Java
> ----------------------------------------------
>
>                 Key: JBRULES-3367
>                 URL: https://issues.jboss.org/browse/JBRULES-3367
>             Project: Drools
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>          Components: drools-planner
>            Reporter: Geoffrey De Smet
>            Assignee: Geoffrey De Smet
>
> Provide an plain old java alternative to score calculations, so the user has choice (= freedom):
> - A) Drools score calculation (default). Does incremental calculation automatically, without extra code.
> - B) Java non-incremental score calculation. Very easy to reuse existing score code, but not fast.
> - C) Java incremental score calculation. Requires incremental boilerplate code, but experiments show that in some use cases (with little rules) it can be a 100 times faster than A) with drools 5.3. Note that undo-then and JIT compiling might change that number drastically in future drools versions.
> Technically, it's a matter of overwriting SolutionDirector. For C) we'll also need to adjust the Move and ProblemFactChange interface accordingly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list