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

Sanjay Radia commented on HDFS-5324:
------------------------------------

I am copying my comment from  hdfs-dev:

HDFS pluggability (and relation to pluggability added as part of Federation)
 * Pluggabilty and federation are orthogonal, although we did improved the 
pluggabily of HDFS as part of federation implementation. The *block layer* was 
separated out as part of the federation work and hence makes the general 
development of new  of HDFS namespace implementations easier.  Federation's  
pluggablity was  targeted towards  someone writing a new NN and reusing the 
block storage layer via a library   and *optionally* living side-by-side with 
different implementations of the NN *within the same cluster*. Hence we added 
notion of block pools and separated out the block management layer.  
* So your proposed work is clearly not in conflict with Federation or even with 
the pluggability that Federation added, but philosophically,  your proposal is 
complementary. 

Considerations: A Public API?
The FileSystem/AbstractFileSystem APIs and the newly proposed 
AbstractFSNamesystem are targeting very different kinds of plugability into 
Hadoop. The former takes a thin application API (FileSystem and FileContext) 
and makes it easy for users to plug in different filesytems (S3, LocalFS, etc) 
as Hadoop compatible filesystems. In contrast the later (the proposed 
AbstractFSNamesystem) is a fatter interface inside the depths of HDFS 
implementation and makes parts of the impl pluggable. 

I would  not make your proposed AbstractFSNamesystem a public stable Hadoop API 
but instead direct it towards to HDFS developers who want to extend the 
implementation of HDFS more easily. Were you envisioning the 
AbstractFSNamesystem to be a stable public Hadoop API? If someone has their own 
private implementation for this new abstract class, would  the HDFS community 
have the freedom to modify the abstract class in incompatible ways? 

> Make Namespace implementation pluggable in the namenode
> -------------------------------------------------------
>
>                 Key: HDFS-5324
>                 URL: https://issues.apache.org/jira/browse/HDFS-5324
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>    Affects Versions: 2.1.1-beta
>         Environment: All
>            Reporter: Milind Bhandarkar
>            Assignee: Milind Bhandarkar
>             Fix For: 3.0.0
>
>
> For the last couple of months, we have been working on making Namespace
> implementation in the namenode pluggable. We have demonstrated that it can
> be done without major surgery on the namenode, and does not have noticeable
> performance impact. We would like to contribute it back to Apache HDFS.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to