On Mon, Apr 4, 2022 at 1:11 PM Dave Marion <dmario...@gmail.com> wrote:
>
> I understand the desire to see less coupling for the optional features, but
> getting to that point for ScanServers (and less so for ExternalCompactions)
> would be a ton of work I think.

The likelihood of it being a lot of work doesn't mean it shouldn't be
done. It's much more likely you could get help doing the work, if
needed, after the 2.1 release, when some of the time that people are
putting in 2.1 quality controls / testing, is freed up to work on
other tasks.

> The concern that I brought up in the "2.1
> Release TODOs" thread regarding planning has not been addressed. If there
> was a defined path forward, then that might make it easier to see how this
> feature gets added in the near-future in whatever form it takes.

LOL, I forked the mailing list conversation because Keith started
discussing the feature merits in the release planning thread, and it
seemed like a separate topic. Now, you're talking about release
planning in this thread. I'm not sure where to reply! 🤦 I guess the
lines are blurred. I'll reply here.

If we decide not to merge it into 2.1, what would be your preferred
path forward? What's your contingency plan for this feature if the
community doesn't include it in 2.1? Here's some possibilities:

* Could release in non-LTM 2.2 (release right away)
* Could release in non-LTM 3.0 (to include with other 3.0 changes)
* Could do some work to decouple, and create a separate optional
add-on jar for 2.1

By default, I would expect it to go into the next release (probably
named 3.0), unless there's another path proposed that we can get
consensus around. The more decoupled it is from Accumulo's internals,
though, makes it more likely to be usable with more versions, even
2.1. If completely decoupled, it could be released at any time on its
own schedule and be made to work with any version you like. It
wouldn't need to be released coupled to an Accumulo release.

>
> Regarding the concern about the readiness of the feature branch, Keith is
> doing a last pass review on the draft and then I believe we are ready to
> take it out of draft state. I think it will be before the end of this week.
> We have added six new integration tests and we have done some local and
> cluster testing.

Taking it out of draft state means that some people will begin to look
at it. But, others, whose focus is on polishing existing features and
testing for 2.1 won't have time, unless they prioritize your PR over
the existing prep for 2.1. I'm not sure how long that would take.

> Regarding the concern mentioned above, "availability of time to review/test
> such a big feature without delaying 2.1," I didn't realize that we had a
> schedule.

We don't have a strict schedule. We never have. It's informal. It's
just that 2.1 has been under development for so long already. I've
been feeling the pressure build to get it released. I think a lot of
our community has already started wanting a 2.x LTM release once we
started discussing the LTM concept, and they've been stuck with 2.0 as
the only 2.x version to work with. We only reluctantly did a CVE patch
for 2.0, when it was non-LTM, only because we were not able to get 2.1
out at that time. Mike also suggested in Slack months ago (January
27th), that we should consider branching a 2.2 for new features, so
2.1 doesn't get slowed down. So, I know I'm not the only one who has
felt 2.1 is getting a little fat with feature changes and overdue for
a release. You commented on that thread, so I know you had at least a
peripheral awareness at some point, that there was interest in
wrapping up 2.1 before you even started the ScanServer work, way back
when we were still cleaning up the tests from the breakages caused by
the big external compactions and thread pool changes.

>  Does it matter if it takes 2/4/6/8 weeks to test the 1000+
> completed issues in this release?

Yes. I think so.

First, most of those changes are trivial, and have already been
thoroughly tested and proven during development. While we do overall
testing near the end of development near a release, most of the
testing is done continuously throughout development, even for the
non-trivial changes. We often test features thoroughly as they are
added before we move on to the next feature to work on. So, it's
misleading to suggest that there are 1000+ untested features queued up
to be tested and that this is merely one more.

Second, while the specific duration 2 weeks vs. 8 weeks doesn't
necessarily matter, it does matter whether we're testing a moving
target or not. At this point, our testing target is still moving, but
it should be moving much more slowly than it was at the beginning of
the development cycle, and it should be slowing down, not speeding up
with new features. Many of us have already been thinking about a 2.1
release for several months and have been working on fixing tests,
making test improvements, wrapping up existing features, and doing
code quality checks, instead of doing new features, checking the open
tickets, and closing open PRs, specifically because we've moved
informally into a "wrapping up" phase. I myself only looked into
cleaning up ZooKeeper recently, because we had several tickets open
marked for 2.1 for singleton manager cleanup, and I wanted to see if
we could get them in or if they needed to be bumped... because I'm
focused on wrapping up 2.1. I suspect others are in a similar mindset
for 2.1.

> I know that we want to finish up the
> 2.1.0 release, but is there a target date?

No, there isn't a specific target date. We've never had a specific
target date. What we've had is a general need to have a reasonable cut
off point once momentum has started building, and consensus has grown
towards the conclusion that we're feature-sufficient for a release. I
think that momentum has already been building for a while now. We
don't need a specific target date, but we do need development to slow
down as we polish up, so we don't have a rapidly moving target to
chase.



Even if I understood the rush to get it released in 2.1, which I
don't, I still think it would likely delay 2.1 a lot, because we don't
have unlimited developer time and expertise. So we'd have to have
consensus on accepting that delay as a trade-off for including it.
Speaking only for myself, I would prefer we release without it, rather
than delay, and then focus on more big features for the next release,
and release more frequently... something this community has discussed
on the mailing list many times, but never managed to accomplish. Part
of the goal of LTM releases was so we could have more frequent non-LTM
releases. If we put so much importance into getting all our features
into LTM releases, regardless of how long it delays, or where we're at
in the development cycle, we're never going to do non-LTM releases,
because we just won't have the energy or motivation to do it.

Reply via email to