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

Konstantin Shvachko commented on HDFS-7007:
-------------------------------------------

Another 
[observation|https://issues.apache.org/jira/browse/HDFS-6940?focusedCommentId=14109691&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14109691],
 which [~atm] does, argues that subclassing of NameNode classes makes the 
implementation more fragile (if I understood it correctly).
There is one essential advantage of subclassing. I can create a completely 
different sub-project, recreate the package structure of the parent class and 
reuse methods classes of that package in the parent class project, without 
modifying the parent project. That way the parent project is completely 
independent of the new sub-project.
Example:
{code}
/hadoop-hdfs/
      org.apache.hadoop.hdfs.server.namenode.NameNode {}
/hadoop-cnode/
      org.apache.hadoop.hdfs.server.namenode.ConsensusNode implements NameNode 
{}
{code}
In this case you can modify and build hadoop-hdfs without taking into account 
hadoop-cnode. And deal with CNode only on the integration stage. I thought such 
separation is desirable.

> Interfaces to plugin ConsensusNode.
> -----------------------------------
>
>                 Key: HDFS-7007
>                 URL: https://issues.apache.org/jira/browse/HDFS-7007
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: 3.0.0
>            Reporter: Konstantin Shvachko
>
> This is to introduce interfaces in NameNode and namesystem, which are needed 
> to plugin ConsensusNode.



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

Reply via email to