Re: Formatting Curmudgeons WAS: MMAP Buffers - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Formatting Curmudgeons WAS: MMAP Buffers
Date
Msg-id BANLkTimevDs7S33g5csUzmU1=NCkL+tM0g@mail.gmail.com
Whole thread Raw
In response to Re: Formatting Curmudgeons WAS: MMAP Buffers  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: Formatting Curmudgeons WAS: MMAP Buffers
Re: Formatting Curmudgeons WAS: MMAP Buffers
Re: Formatting Curmudgeons WAS: MMAP Buffers
List pgsql-hackers
On Thu, Apr 21, 2011 at 2:43 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> On Wed, 2011-04-20 at 21:09 -0400, Robert Haas wrote:
>> But
>> even then I think we'd have this problem of people being unwilling to
>> give up on jamming stuff into a release, regardless of the scheduling
>> impact of doing so.  I actually think the problem of getting releases
>> out on time is a *much* bigger problem for us than how long or short
>> CommitFests are.
>
> I think to really address that problem, you need to think about shorter
> release cycles overall, like every 6 months.  Otherwise, the current 12
> to 14 month horizon is just too long psychologically.

I agree.  I am in favor of a shorter release cycle.  But I think that
a shorter release cycle won't work well if there is still four month
long integration period at the end of each series of CommitFests.  The
problem is a bit circular here: because release cycles are long,
people really, really want to slip as much as possible in at the end.
But being under time pressure to get things committed results in a
higher bug count, which means more things that have to be fixed after
feature freeze, which translates into a long release cycle.

I think that it's not too bad if the process of a release getting out
the door results in effectively missing one CommitFest.  For example,
if we imagine one-month CommitFests starting every two months, and we
had a CommitFest starting on January 15th, it wouldn't be too painful
if we skipped a hypothetical March 15th CommitFest to get the release
done, and then started up the process again on May 15th.  However, in
practice, what happens is we miss *two* CommitFests: the expectation
is that the next CommitFest will be on the order of July 15th, which
is just too long.  Similarly, if we did shorter CommitFests and
shorter releases - say, five one-week-a-month CommitFests in July,
August, September, October, and November, I'd want to kick a release
out in December and reopen for development in January, not get stuck
with the same six-month feature freeze we have now, or even a
four-month feature freeze.  But that isn't going to work if people do
the same sort of throwing everything into the kitchen sink at the last
minute that we have been doing for at least the last couple of
releases.

In fact, I don't believe that the current CF cycle really forces a
huge amount of waiting-for-feedback.  It's true that if you submit a
patch at a randomly chosen time, you will have to wait up to two
months for a CommitFest to start, and then you might not get a review
until late in the CommitFest, so it could take you up to three months
to get a review.  In practice, patches are not submitted at random
times - in fact, probably 50% of the patches come in during the last
week before the CF starts, and typically perhaps 50% of the patches
get a review in the first week, and maybe 80% within the first two
weeks.   Some patches also get an initial review between CommitFests,
which further improves the average.  Overall, I bet the average time
between patch submission and first review is <3 weeks.  You can
typically get 2 or 3 followup reviews during the same cycle with only
a few days latency for each.  Even though it would be nice to do
better, for an all-volunteer project, I think it's respectable.   I
can't say the same thing about our process from getting from feature
freeze to release.  It's really long, and it's nearly all fixing bugs
in code that was committed in the last CF, and the last CF produces
exponentially more bugs than the earlier ones, and it's often the case
that people don't fix their own bugs and someone else has to jump in
to pick up the slack.  Meanwhile, the regular flow of reviewing and
committing patches is completely disrupted; and once in a while
someone gets flamed for so much as bringing up a new feature that
they're interested in working on for the next release (which I think
is totally unwarranted; now is the PERFECT time to begin roughing out
plans for 9.2 work... but I digress).

So while I'm mildly interested in the idea of shifting the CF cycle
around to provide more timely review, I can't really get that excited
about it, especially if there's any risk that we are just shifting
more of the work from the CommitFest cycle to the
end-of-release-interminable-integration-period.  However, if there's
some way of avoiding the phenomenon where all hell breaks loose
because people jam four major new features into the tree in as many
weeks, sign me up.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Formatting Curmudgeons WAS: MMAP Buffers
Next
From: Peter Eisentraut
Date:
Subject: Re: Typed table DDL loose ends