[ 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