[
https://issues.apache.org/jira/browse/HIVE-1852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12973883#action_12973883
]
Joydeep Sen Sarma commented on HIVE-1852:
-----------------------------------------
Hive..java:1564 - this should read fs.rename(srcs[0]) (since srcf may have been
a wildcard that matched a single dir)
Hive.java:1574 - we can optimize this loop i think. if the wildcard does not
match a single directory - then it has to match a set of files. the
loadsemantic analyzer already enforces this. so we don't need a second
listStatus and loop over the entries here. can directly move each of the srcs
into destf/srcs.getName
we have lost the atomic move for the wildcard case. i think it's ok (it's not
used much i would imagine) - at least leave a note/todo saying that this would
be nice to have atomic.
new tests look pretty good to me - the load/move case with wildcards is getting
covered. we could add one where the load path is a wildcard that matches a
single dir to cover the first comment here.
> Reduce unnecessary DFSClient.rename() calls
> -------------------------------------------
>
> Key: HIVE-1852
> URL: https://issues.apache.org/jira/browse/HIVE-1852
> Project: Hive
> Issue Type: Improvement
> Reporter: Ning Zhang
> Assignee: Ning Zhang
> Attachments: HIVE-1852.2.patch, HIVE-1852.3.patch, HIVE-1852.4.patch,
> HIVE-1852.5.patch, HIVE-1852.patch
>
>
> In Hive client side (MoveTask etc), DFSCleint.rename() is called for every
> file inside a directory. It is very expensive for a large directory in a busy
> DFS namenode. We should replace it with a single rename() call on the whole
> directory.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.