[jboss-jira] [JBoss JIRA] (DROOLS-2799) DMN Optimize DT parameter binding for compilation

Matteo Mortari (JIRA) issues at jboss.org
Mon Jul 30 09:39:00 EDT 2018


     [ https://issues.jboss.org/browse/DROOLS-2799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matteo Mortari updated DROOLS-2799:
-----------------------------------
    Story Points: 5


> DMN Optimize DT parameter binding for compilation
> -------------------------------------------------
>
>                 Key: DROOLS-2799
>                 URL: https://issues.jboss.org/browse/DROOLS-2799
>             Project: Drools
>          Issue Type: Enhancement
>          Components: dmn engine
>            Reporter: Matteo Mortari
>            Assignee: Matteo Mortari
>         Attachments: AFTER.png, BEFORE.png
>
>
> Currently, DMN layer Evaluator method:
> {code:java}
> org.kie.dmn.core.ast.DMNDTExpressionEvaluator.evaluate(org.kie.dmn.api.core.event.DMNRuntimeEventManager, org.kie.dmn.api.core.DMNResult)
> {code}
> calls down to FEEL layer function:
> {code:java}
> org.kie.dmn.feel.runtime.functions.DTInvokerFunction.invoke(org.kie.dmn.feel.lang.EvaluationContext, java.lang.Object[ ])
> {code}
> In order to evaluate Decision Table using DecisionTableImpl.
> Currently, the whole Decision Table FEEL expression/UT are compiled to CompiledExpression and this enable for fast performance during execution and multiple evaluation, however, the parameter binding for the invocation from the DMN layer does not leverage FEEL expression compilation of the parameters ( information/knowledge requirements coming from the DRG graph ) hence the parameter binding is not really as fast as it could be across several evaluation.
> The current proposal leverage compilation for the parameter (names) which are actually FEEL expression, in order to move from this scenario:
>  !BEFORE.png! 
> to this:
>  !AFTER.png! 
> Conclusion the current proposal optimize the DMN parameter binding for the Decision Table invocation across several evaluations by at least an order of magnitude*
> {{*}} if compared to baseline, using a JUnit test part of the actual code base as benchmark



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list