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