Zain Humayun created CALCITE-1959:
-------------------------------------

             Summary: Reduce the amount of Metadata and table name calls in 
Druid
                 Key: CALCITE-1959
                 URL: https://issues.apache.org/jira/browse/CALCITE-1959
             Project: Calcite
          Issue Type: Improvement
          Components: druid
            Reporter: Zain Humayun


Currently in the Druid adapter, when a model definition file is not provided, 
query times can be quite slow due to excessive metadata and table names calls. 
Initial investigation reveals that a simple query like

{code:sql}
SELECT * from table
{code}

produces at least 30 http calls for fetching the table names, and another 30 
calls for meta data. This slows down the query considerably, even when the 
individual calls themselves are relatively quick. 

The source of the issue seems to be {{DruidSchema#getTableMap}}, as this method 
dispatches calls to both {{DruidConnectionImpl#metadata}} and 
{{DruidConnectionImpl#tableNames}}. In addition, {{DruidTable#create}} makes 
another call to {{DruidConnectionImpl#metadata}} even if it's given the 
populated fields as arguments.

{{getTableMap}} is called fairly often indirectly from many places, including 
the validator, so as the query becomes larger, the problems gets a lot worse. 
Ideally, one would provide a model definition to prevent this, but doing so is 
not always possible/preferred for users.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to