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

Eli Collins commented on HDFS-2288:
-----------------------------------

There's two definition of visible length, or rather we're using the same name 
for two things:

1. The above definition by Konst and the design doc which defines it as 
property of the replica:

{quote}
visible length is the "number of bytes that have been acknowledged by the 
downstream DataNodes". It is replica (not block) specific, meaning it can be 
different for different replicas at a given time. In the document it is called 
BA (bytes acknowledged), compared to BR (bytes received).
{quote}

2. Nicholas' definition in HDFS-814 and DFSClient#getVisibleLength which 
defines it as a property of a file:

{quote}
The visible length is the length that *all* datanodes in the pipeline contain 
at least such amount of data. Therefore, these data are visible to the readers.
{quote}

According to this definition the visible length of a file is the floor of all 
visible lengths of all the replicas of the last block. It's a static property 
set on open, eg is not updated when a writer calls hflush. Also 
DFSInputStream#readBlockLength returns the 1st visible length of a replica it 
finds, so it seems possible (though unlikely) in a failure scenario it could 
return a length that was longer than what all replicas had.

Perhaps we should rename DFSClient#getVisibleLength?
                
> Replicas awaiting recovery should return a full visible length
> --------------------------------------------------------------
>
>                 Key: HDFS-2288
>                 URL: https://issues.apache.org/jira/browse/HDFS-2288
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: data-node
>    Affects Versions: 0.23.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Critical
>         Attachments: hdfs-2288.txt
>
>
> Currently, if the client calls getReplicaVisibleLength for a RWR, it returns 
> a visible length of 0. This causes one of HBase's tests to fail, and I 
> believe it's incorrect behavior.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to