[ 
https://issues.apache.org/jira/browse/HADOOP-9981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13772403#comment-13772403
 ] 

Andrew Wang commented on HADOOP-9981:
-------------------------------------

Hey Kihwal,

We could definitely use {{lstat(2)}} system call instead of {{stat(1)}}, it 
just requires a bit more work. {{lstat(2)}} only provides the uid and gid, so 
these would need to be translated into string names via {{getpwnam}} and 
{{getgrname}}. It'd also require calling {{readlink(2)}} to get the link target 
if it's a link. I agree we can keep the existing behavior as a fallback for not 
having native code.

As a side note, all of this should really be a fallback for JDK7's lstat, which 
we theoretically should be allowed to use since JDK6 is EOL.
                
> Listing in RawLocalFileSystem is inefficient
> --------------------------------------------
>
>                 Key: HADOOP-9981
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9981
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>            Reporter: Kihwal Lee
>            Priority: Critical
>
> After HADOOP-9652, listStatus() or globStatus() calls against a local file 
> system directory is very slow.  A user was loading data from local file 
> system to Hive and it took about 30 seconds. The same operation took less 
> than a second pre-HADOOP-9652. 
> The input path had many other files beside the input files and strace showed 
> that fork & exec of stat against each and every one of them. jstack confirmed 
> that this was being done from getNativeFileLinkStatus().

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to