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

Kihwal Lee commented on HDFS-7174:
----------------------------------

I manually run the test-patch and verified that no new javac warnings are 
generated with the patch. I checked the diff of warnings.  In fact, the build 
log says this:
{panel}
There appear to be 1264 javac compiler warnings before the patch and 1264 javac 
compiler warnings after applying the patch
{panel}
I am not sure why it decided to say there are two new warnings.

The failures in TestCommitBlockSynchronization is caused by the patch. Without 
the patch, searching for an inode with {{null}} name in a directory always 
returns a valid index, 0, even if there is no such entry. So, if the name of an 
inode is {{null}}, any {{INodeDirectory}} instances will think it has this 
inode as a child!  The test case was relying on this broken behavior. It 
doesn't even actually need to call {{parent.addChild(file)}}.

I will fix the test case.

> Support for more efficient large directories
> --------------------------------------------
>
>                 Key: HDFS-7174
>                 URL: https://issues.apache.org/jira/browse/HDFS-7174
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>            Priority: Critical
>         Attachments: HDFS-7174.patch, HDFS-7174.patch
>
>
> When the number of children under a directory grows very large, insertion 
> becomes very costly.  E.g. creating 1M entries takes 10s of minutes.  This is 
> because the complexity of an insertion is O\(n\). As the size of a list 
> grows, the overhead grows n^2. (integral of linear function).  It also causes 
> allocations and copies of big arrays.



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

Reply via email to