[
https://issues.apache.org/jira/browse/DRILL-5290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15879438#comment-15879438
]
ASF GitHub Bot commented on DRILL-5290:
---------------------------------------
Github user sudheeshkatkam commented on a diff in the pull request:
https://github.com/apache/drill/pull/757#discussion_r102598925
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java ---
@@ -91,7 +91,12 @@ public QueryContext(final UserSession session, final
DrillbitContext drillbitCon
executionControls = new ExecutionControls(queryOptions,
drillbitContext.getEndpoint());
plannerSettings = new PlannerSettings(queryOptions,
getFunctionRegistry());
plannerSettings.setNumEndPoints(drillbitContext.getBits().size());
- table = new DrillOperatorTable(getFunctionRegistry(),
drillbitContext.getOptionManager());
+
+ if (getOption(ExecConstants.USE_DYNAMIC_UDFS).bool_val) {
--- End diff --
+ `getOption` uses queryOptions. Is that intended?
+ If so, avoid calling methods in this class in ctor. Use
`queryOptions.getOption(...)`
+ Change declaration to `BooleanValidator USE_DYNAMIC_UDFS_VALIDATOR ...`
to avoid `.bool_val`
> Provide an option to build operator table once for built-in static functions
> and reuse it across queries.
> ---------------------------------------------------------------------------------------------------------
>
> Key: DRILL-5290
> URL: https://issues.apache.org/jira/browse/DRILL-5290
> Project: Apache Drill
> Issue Type: Bug
> Affects Versions: 1.9.0
> Reporter: Padma Penumarthy
> Assignee: Padma Penumarthy
> Fix For: 1.10
>
>
> Currently, DrillOperatorTable which contains standard SQL operators and
> functions and Drill User Defined Functions (UDFs) (built-in and dynamic) gets
> built for each query as part of creating QueryContext. This is an expensive
> operation ( ~30 msec to build) and allocates ~2M on heap for each query. For
> high throughput, concurrent low latency operational queries, we quickly run
> out of heap memory, causing JVM hangs. Build operator table once during
> startup for static built-in functions and save in DrillbitContext, so we can
> reuse it across queries.
> Provide an system/session option to not use dynamic UDFs so we can use the
> operator table saved in DrillbitContext and avoid building each time.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)