Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-5290

Provide an option to build operator table once for built-in static functions and reuse it across queries.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.9.0
    • 1.10.0
    • None

    Description

      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, 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 a system/session option to not use dynamic UDFs so we can use the operator table saved in DrillbitContext and avoid building each time.

      Please note, changes are adding new option exec.udf.use_dynamic which needs to be documented.

      Attachments

        Issue Links

          Activity

            People

              ppenumarthy Padma Penumarthy
              ppenumarthy Padma Penumarthy
              Kunal Khatua Kunal Khatua
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: