[
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)