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

Slow code generation/compilation(/scalar replacement?) for getColumns(...) query

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • Future
    • Execution - Codegen
    • None

    Description

      Calling Drill's JDBC driver's DatabaseMetaData.getColumns(...) method seems to take an unusually long of time to execute.

      Unit tests TestJdbcMetadata and Drill2128GetColumnsDataTypeNotTypeCodeIntBugsTest have gotten slower recently, seemingly in several increments: They needed their timeouts increased, from around 50 s to 90 s, and then to 120 s, and that 120 s timeout is not long enough for reliable runs (at least on my machine).

      From looking at the logs (with sufficiently verbose logging), it seems that the large SQL query in the implementation of getColumns() (currently in org.apache.drill.jdbc.MetaImpl) is leads to 513 kB of generated code.

      That half a megabyte of generated Java code frequently takes around 110 seconds to compile (on my machine).

      Attachments

        Activity

          People

            Unassigned Unassigned
            dsbos Daniel Barclay
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: