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

Konstantin Boudnik commented on HDFS-6940:
------------------------------------------

bq. Sure, but by creating a plugin interface or something of that ilk we can 
precisely define the contract
I have a great idea [~atm] - let's in fact do everything as plugins! For 
example 2.4.0 release introduced 3 backward incompatible fixes that broke _at 
least_ two huge components in the downsteam. In fact, we are catching stuff 
like that in Bigtop all the time. I am sure it could've been avoided if we only 
we had a better plugin contracts for everything that depends on the Hadoop bits.

I think everyone should've figured out by now that being in the position of a 
base-layer puts a tremendous pressure on the development practices and 
architectural decisions. Changes in the Hadoop shouldn't be breaking user space 
(similarly to that of Linux kernel). Likewise, changes in a super class should 
not be breaking its children if the said super-class' contracts are well 
designed and implemented - that's a basic principle of OOP after all. By 
artificially limiting choices of the future consumers of a library instead of 
implementing accommodative APIs one doesn't build a better system. One'd simply 
be forcing downstream developers to hack-in or around those arbitrary 
limitations. And such development won't produce a well integrated stack. The 
evidences of it are plenty.

> 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: 3.0.0
>            Reporter: Konstantin Shvachko
>            Assignee: Konstantin Shvachko
>         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