Sahil Takiar created HIVE-15546:
-----------------------------------

             Summary: Optimize Utilities.getInputPaths()
                 Key: HIVE-15546
                 URL: https://issues.apache.org/jira/browse/HIVE-15546
             Project: Hive
          Issue Type: Sub-task
          Components: Hive
            Reporter: Sahil Takiar
            Assignee: Sahil Takiar


When running on blobstores (like S3) where metadata operations (like 
listStatus) are costly, Utilities.getInputPaths() can add significant overhead 
when setting up the input paths for an MR / Spark / Tez job.

The method performs a listStatus on all input paths in order to check if the 
path is empty. If the path is empty, a dummy file is created for the given 
partition. This is all done sequentially. This can be really slow when there 
are a lot of empty partitions. Even when all partitions have input data, this 
can take a long time.

We should either:

(1) Just remove the logic to check if each input path is empty, and handle any 
edge cases accordingly.

(2) Multi-thread the listStatus calls



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to