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

Zesheng Wu commented on HDFS-6898:
----------------------------------

Oh, sorry, I missed that detail in the patch. 
One more question, in the append() method :
{code}
ReplicaBeingWritten newReplicaInfo = new ReplicaBeingWritten(
        replicaInfo.getBlockId(), replicaInfo.getNumBytes(), newGS,
        v, newBlkFile.getParentFile(), Thread.currentThread(), 
estimateBlockLen);
{code}
Here reserves {{estimateBlockLen}} bytes

{code}
 v.reserveSpaceForRbw(estimateBlockLen - replicaInfo.getNumBytes());
{code}
Here reserves {{estimateBlockLen - replicaInfo.getNumBytes()}} bytes

What's the difference between these two?

> DN must reserve space for a full block when an RBW block is created
> -------------------------------------------------------------------
>
>                 Key: HDFS-6898
>                 URL: https://issues.apache.org/jira/browse/HDFS-6898
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 2.5.0
>            Reporter: Gopal V
>            Assignee: Arpit Agarwal
>         Attachments: HDFS-6898.01.patch, HDFS-6898.03.patch, 
> HDFS-6898.04.patch, HDFS-6898.05.patch
>
>
> DN will successfully create two RBW blocks on the same volume even if the 
> free space is sufficient for just one full block.
> One or both block writers may subsequently get a DiskOutOfSpace exception. 
> This can be avoided by allocating space up front.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to