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

stack commented on HDFS-3702:
-----------------------------

bq. I suggest HBase should do the same way of how it today is using 
favoredNodes.

Thanks [~szetszwo] for the response, but you did not answer the question. The 
question was if you thought the process of first staging a 'hidden' API is a 
fair burden to put on your favorite downstream project (not to mention the mess 
it makes inside HDFS -- see note above this one for graphic detail).

Lets back up. I think it will help us make some progress here again.

You say:

bq. So let add this flag later so that it allows us to test the feature and see 
if it is good enough or we may actually need disfavoredNodes. Sound good?

No. It does not sound good. There is no need to stage a feature as hidden 
first, one that is reasonable (see above discussion with the opinion of many), 
and has an immediate need/user. If any concern that the feature is lacking or 
does not work as advertised, lets do whatever proofing of the feature is needed 
here as part of this issue and just get it done. If the bundled tests are 
unsatisfactory or if you'd like me to try and report result of running this 
facility at scale, just say... no problem. If the implementation has a bug, 
lets fix in a follow-up. As we would do any other feature in HDFS.

On your concern that a new 'hint' to the create method exposes new API, an API 
that by definition does not put a burden on any FS implementation that they 
need implement the suggested operation -- i.e. the amount of API 'surface' is 
miniscule --  it has been suggested above that we flag it 
@InterfaceAudience.LimitedPrivate(HBase) for a probationary period. How about 
we also add @InterfaceStability.Evolving on the flag so it can be yanked 
anytime if for some unforeseen reason, it a total mistake. Would this assuage 
your exposure concern [~szetszwo]? Thanks for your time.

> Add an option for NOT writing the blocks locally if there is a datanode on 
> the same box as the client
> -----------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-3702
>                 URL: https://issues.apache.org/jira/browse/HDFS-3702
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: hdfs-client
>    Affects Versions: 2.5.1
>            Reporter: Nicolas Liochon
>            Assignee: Lei (Eddy) Xu
>            Priority: Minor
>              Labels: BB2015-05-TBR
>         Attachments: HDFS-3702.000.patch, HDFS-3702.001.patch, 
> HDFS-3702.002.patch, HDFS-3702.003.patch, HDFS-3702.004.patch, 
> HDFS-3702.005.patch, HDFS-3702.006.patch, HDFS-3702.007.patch, 
> HDFS-3702.008.patch, HDFS-3702.009.patch, HDFS-3702.010.patch, 
> HDFS-3702.011.patch, HDFS-3702_Design.pdf
>
>
> This is useful for Write-Ahead-Logs: these files are writen for recovery 
> only, and are not read when there are no failures.
> Taking HBase as an example, these files will be read only if the process that 
> wrote them (the 'HBase regionserver') dies. This will likely come from a 
> hardware failure, hence the corresponding datanode will be dead as well. So 
> we're writing 3 replicas, but in reality only 2 of them are really useful.



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

Reply via email to