Eric Badger created HDFS-11592:
----------------------------------

             Summary: Closing a file has a wasteful preconditions
                 Key: HDFS-11592
                 URL: https://issues.apache.org/jira/browse/HDFS-11592
             Project: Hadoop HDFS
          Issue Type: Bug
            Reporter: Eric Badger
            Assignee: Eric Badger


When a file is closed, the NN checks if all the blocks are complete. Instead of 
a simple 'if (!complete) throw new IllegalState(expensive-err-string)" it 
invokes "Preconditions.checkStatus(complete, expensive-err-string)". The check 
is done in a loop for all blocks, so more blocks = more penalty. The expensive 
string should only be computed when an error actually occurs. A telltale sign 
is seeing this in a stacktrace:
{noformat}
       at java.lang.Class.getEnclosingMethod0(Native Method)
        at java.lang.Class.getEnclosingMethodInfo(Class.java:1072)
        at java.lang.Class.getEnclosingClass(Class.java:1272)
        at java.lang.Class.getSimpleBinaryName(Class.java:1443)
        at java.lang.Class.getSimpleName(Class.java:1309)
        at 
org.apache.hadoop.hdfs.server.namenode.INodeFile.assertAllBlocksComplete(INodeFile.java:246)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to