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

Chris Nauroth commented on HDFS-9038:
-------------------------------------

bq. Brahma changed this at my suggestion. Exposing reserved bytes through 
nonDfsUsed was inadvertent side effect of HDFS-6898.

Sorry, I missed that earlier comment.  I understand the rationale now, so I'll 
withdraw my comment about changing it.

Regarding {{File#getUsableSpace}} vs. {{File#getFreeSpace}}, I've been 
approaching this as a regression introduced by HDFS-5215, with the goal of 
restoring the pre-HDFS-5215 behavior as closely as possible.  Before HDFS-5215, 
non-DFS used was based on {{File#getUsableSpace}}, indirectly because of use of 
{{getAvailable}} in the calculation.  This meant that "free but unusable" space 
would have counted towards non-DFS used.

However, that would then lead me to expect seeing a non-zero non-DFS used for 
the typical 5% reserved for privileged users.  In practice, I haven't seen that 
happen though.  I'm not sure why not.

I tried digging through revision history for past decisions.  The use of 
{{File#getUsableSpace}} traces back to HADOOP-5958, when the code switched from 
forking to {{df}} to using then-new JDK 1.6 APIs.  There is a question posted 
about which method to use, but no specific discussion about why 
{{File#getUsableSpace}} was chosen.

I don't think switching to {{File#getFreeSpace}} is necessarily wrong, just 
different from the pre-HDFS-5215 calculation, which might cause some surprises.


> Reserved space is erroneously counted towards non-DFS used.
> -----------------------------------------------------------
>
>                 Key: HDFS-9038
>                 URL: https://issues.apache.org/jira/browse/HDFS-9038
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 2.7.1
>            Reporter: Chris Nauroth
>            Assignee: Brahma Reddy Battula
>         Attachments: HDFS-9038-002.patch, HDFS-9038-003.patch, 
> HDFS-9038-004.patch, HDFS-9038-005.patch, HDFS-9038.patch
>
>
> HDFS-5215 changed the DataNode volume available space calculation to consider 
> the reserved space held by the {{dfs.datanode.du.reserved}} configuration 
> property.  As a side effect, reserved space is now counted towards non-DFS 
> used.  I don't believe it was intentional to change the definition of non-DFS 
> used.  This issue proposes restoring the prior behavior: do not count 
> reserved space towards non-DFS used.



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

Reply via email to