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

Todd Lipcon commented on HDFS-6940:
-----------------------------------

bq. This issue is being rejected based on an anticipation of some future 
interfaces

I think this patch is being proposed on an anticipation of some future usage on 
a branch. Without looking at the actual extension, this patch looks like a pure 
negative. It's always a best practice to have as tight a visibility as 
possible, and this patch makes things visible which were previously private. It 
also adds what look like needless refactors such as splitting out a trivial 
setHosts method -- if I were reading the source in isolation and I saw that 
method, I'd probably "clean it up" by inlining at the call site. Making a 
'final' member non-final also is a negative code quality change in isolation - 
if members are set only in the constructor, it's best to have them final.

Given that all of the above seem like they _lower_ the code quality rather than 
improve it. The only reason I could see for this change is to provide for 
extension via a subclass mechanism, which I also think is generally a bad idea 
based on my experience with this (and other) code bases. Given this, I'm also 
-1 on this patch being in trunk. If you want to commit it to the feature 
branch, go ahead -- though I think the reservations about subclassing as an 
extension mechanism will still be an issue when you propose an eventual merge.

> Initial refactoring to allow ConsensusNode implementation
> ---------------------------------------------------------
>
>                 Key: HDFS-6940
>                 URL: https://issues.apache.org/jira/browse/HDFS-6940
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: 2.0.6-alpha, 2.5.0
>            Reporter: Konstantin Shvachko
>            Assignee: Konstantin Shvachko
>             Fix For: 2.6.0
>
>         Attachments: HDFS-6940.patch
>
>
> Minor refactoring of FSNamesystem to open private methods that are needed for 
> CNode implementation.



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

Reply via email to