Our position on the QJM is we've already "taken delivery" from the feature
branch and will maintain a private HDFS fork of branch-2 if necessary, i.e.
we don't have a significant stake in this discussion except at a meta level
as potential contributors.

This is a case study of why feature branch development is problematic? A
would-be contributor can make a significant effort over months and end up
with a baked result, ready to move on to a perhaps large backlog of other
work. Others can reasonably be expected meanwhile to triage their attention
until the merge point. Then, reconsidering design points will be more
challenging than a design discussion at an earlier time, because there is
already a significant sunk cost in the current design. What does a feature
branch buy here over development in situ in trunk (like the BookKeeper JM)?
Should would-be future contributors consider a feature branch as a viable
route toward contribution or not?

On Tuesday, October 9, 2012, Suresh Srinivas wrote:

> On Mon, Oct 8, 2012 at 6:20 PM, Todd Lipcon <t...@cloudera.com<javascript:;>>
> wrote:
>
> > On Mon, Oct 8, 2012 at 6:01 PM, Suresh Srinivas 
> > <sur...@hortonworks.com<javascript:;>
> > >wrote:
> >
> > > Todd,
> > >
> > > As I indicated in my comments on the jira, I think some of the design
> > > discussions and further simplification of design should happen before
> the
> > > merge. See -
> > >
> > >
> >
> https://issues.apache.org/jira/browse/HDFS-3077?focusedCommentId=13470680&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13470680
> > >
> > >
> > I still haven't heard any actual concrete suggestion for a design
> > improvement. Just abstract notions that "it should be simpler". I could
> say
> > the same about several other features that have been done in the past
> (e.g
> > federation or YARN) but chose not to because I didn't participate in the
> > development. I generally have faith that, if several other people spent
> > several months working on a project, then there must be good reasons for
> > the complexity that I'm probably overlooking.
> >
>
> I think I have participated enough in this work. Merge time seemed like a
> good time
> to review this more thoroughly given this jira has required quite a
> bit of educating myself and spending a lot of my time on this because of
> need to
> understand the complexities/subtletie how paxos and ZAB applies to the
> namenode
> journals.
>
> Please do not misunderstand that I am trying to block this work from being
> merged. I am
> supportive of this as you have seen in my previous response in this thread.
> All I want
> to see is if we can conclude the discussions and incorporate some the
> comments that come
> up after it.
>
> >
> > Several of us (not just I) spent lots of time on this over the last
> several
> > months, with all of the work going on in the open. My issue with this
> > discussion happening now is that no one saw fit to raise these questions
> > months ago when the design was first proposed. For example, this most
> > recent question about whether NewEpoch and PrepareRecovery should be
> > separate RPCs could have been raised in late June when the code in
> question
> > was first introduced as a patch.
> >
> > Nor was anything raised when I gave a "heads up" that the branch was
> > complete and nearly ready for merge ~3 weeks ago. Only once I actually
> > called a merge vote has this discussion started. That doesn't seem like a
> > healthy way to do development.
> >
>
> Again Todd, you are reading more than what is intended. As I said earlier
> merge
> time is a good time to have complete picture and an opportunity to look at
> final design
> and implementation.
>
>
> > What are the criteria, then, for merging? I don't think it's possible to
> > definitively "prove" that a design is "simple". At some level it's a
> matter
> > of taste. So if the current design works, and is tested, and has people
> > signed up to support it and run it, why not merge? Just like any other
> part
> > of HDFS, we can continue to _improve_ it after it is in trunk. There are
> > many features that we commit and then improve later on when someone comes
> > up with a way to simplify it.
> >
>
> One concern I have is, once this is merged into trunk I feel that any
> proposed
> improvements may be blocked. Given that why not just wait for these
> discussions
> to complete and do the work in this branch?
>
> What is the need for getting this into trunk immediately?
>
> If the problem is one of investment of your time, I have already offered to
> help out.
>
>
> > To be clear about the current status of the vote: you are officially
> > vetoing the merge?
>
>
> For now I am going to vote not to merge until the discussion completes.
>
> Regards,
> Suresh
>


-- 
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)

Reply via email to