Similar to Josh, I like Stefan's idea, a lot. iirc, the Basho folks used to
ship a specific version of erlang with Riak, so it's not a new precedent in
the (nosql) database space.
I'm not sure about the licensing, though, as openjdk is GPLv2 w/ classpath
exception - but I can ask Apache Legal about it.

On Wed, Mar 21, 2018 at 6:10 AM, Josh McKenzie <jmcken...@apache.org> wrote:

> As a gut check, the idea of bundling a JRE with C* appeals to me from
> a "control your variables" perspective. Simplifies quite a bit of this
> problem imo.
>
> On Wed, Mar 21, 2018 at 9:04 AM, Stefan Podkowinski <s...@apache.org>
> wrote:
> > There's also another option, which I just want to mention here for the
> > sake of discussion.
> >
> > Quoting the Oracle Support Roadmap:
> > "Instead of relying on a pre-installed standalone JRE, we encourage
> > application developers to deliver JREs with their applications."
> >
> > I've played around with Java 9 a while ago and also tested creating a
> > self contained JRE using jlink, which you can bundle and ship with your
> > application. So there's a technical solution for that with Java 9. Of
> > course you'd have to clarify licensing issues (OpenJDK is GPLv2 +
> > Classpath exception) first.
> >
> > Bundling a custom JRE along with Cassandra, would be convenient in a way
> > that we can do all the testing against the bundled Java version. We
> > could also switch to a new Java version whenever it fits us. Like e.g.
> > apache-cassandra-4.0.14_openjdk11u321 and two months later release
> > apache-cassandra-4.0.15_openjdk12u123. History has shown that planing
> > and timing new releases isn't always working out for us as expected. I'd
> > rather prefer not having to tightly coordinate our own releases together
> > with OpenJDK releases, if it can be avoided. At the same time I'd like
> > to avoid having users updating to incompatible JREs (think about
> > 8u161/#14173), or have them constantly ask which JRE version to use for
> > which Cassandra version, always with the risk of automatic updates
> > causing unexpected issues. Bundling the JRE may help us with that, as it
> > would become more a matter of testing and getting CI turn green, before
> > we're ready to bundle the next major JRE update, without getting the
> > user involved at all.
> >
> > If you would prefer using a global system JRE, that should still be
> > possible by installing an unbundled Cassandra version, but you'd have to
> > pay attention which Java version to use for which Cassandra release,
> > possibly having to provide patches and do some testing for more recent
> > Cassandra versions, in case of compatibility issues. If we update 3.11
> > to Java 13 in mid 2019, we'd have to provide release candidates that can
> > be used for testing for such incompatibilities by LTS users and have
> > them provide patches, which then have to fully work with Java 13 of
> > course. Otherwise I can't see how to make Oracle/Redhat/IBM/Azul LTS
> > releases work, except on this best effort basis without official support
> > guarantees by us.
> >
> > I'm not too enthusiastic about this perspective. But I wouldn't
> > completely dismiss it either, without talking about all the other
> > options first.
> >
> >
> > On 20.03.2018 22:32, Ariel Weisberg wrote:
> >> Hi,
> >>
> >> Synchronizing with Oracle LTS releases is kind of low value if it's a
> paid offering. But if someone in the community doesn't want to upgrade and
> pays Oracle we don't want to get in the way of that.
> >>
> >> Which is how you end up with what Jordan and ElasticSearch suggest. I'm
> still +1 on that although in my heart of hearts I want  to only support the
> latest OpenJDK on trunk and after we cut a release only change the JDK if
> there is a serious issue.
> >>
> >> It's going to be annoying once we have a serious security or
> correctness issue and we need to move to a later OpenJDK. The majority
> won't be paying Oracle for LTS. I don't think that will happen that often
> though.
> >>
> >> Regards,
> >> Ariel
> >>
> >> If that ends up not working and we find it's a problem to not be getting
> >> On Tue, Mar 20, 2018, at 4:50 PM, Jason Brown wrote:
> >>> Thanks to Hannu and others pointing out that the OracleJDK is a
> >>> *commercial* LTS, and thus not an option. mea culpa for missing the
> >>> "commercial" and just focusing on the "LTS" bit. OpenJDK is is, then.
> >>>
> >>> Stefan's elastic search link is rather interesting. Looks like they are
> >>> compiling for both a LTS version as well as the current OpenJDK. They
> >>> assume some of their users will stick to a LTS version and some will
> run
> >>> the current version of OpenJDK.
> >>>
> >>> While it's extra work to add JDK version as yet another matrix
> variable in
> >>> addition to our branching, is that something we should consider? Or
> are we
> >>> going to burden maintainers even more? Do we have a choice? Note: I
> think
> >>> this is similar to what Jeremiah is proposed.
> >>>
> >>> @Ariel: Going beyond 3 years could be tricky in the worst case because
> >>> bringing in up to 3 years of JDK changes to an older release might mean
> >>> some of our dependencies no longer function and now it's not just minor
> >>> fixes it's bringing in who knows what in terms of updated dependencies
> >>>
> >>> I'm not sure we have a choice anymore, as we're basically bound to
> what the
> >>> JDK developers choose to do (and we're bound to the JDK ...). However,
> if
> >>> we have the changes necessary for the JDK releases higher than the LTS
> (if
> >>> we following the elastic search model), perhaps it'll be a reasonably
> >>> smooth transition?
> >>>
> >>> On Tue, Mar 20, 2018 at 1:31 PM, Jason Brown <jasedbr...@gmail.com>
> wrote:
> >>>
> >>>> copied directly from dev channel, just to keep with this ML
> conversation
> >>>>
> >>>> 08:08:26  <snazy> Robert Stupp jasobrown: https://www.azul.com/java-
> >>>> stable-secure-free-choose-two-three/ and
> https://blogs.oracle.com/java-
> >>>> platform-group/faster-and-easier-use-and-redistribution-of-java-se
> >>>> 08:08:38 the 2nd says: "The Oracle JDK will continue as a commercial
> long
> >>>> term support offering"
> >>>> 08:08:46 also: http://www.oracle.com/technetwork/java/eol-135779.html
> >>>> 08:09:21 the keyword in that cite is "commercial"
> >>>> 08:21:21 <exlt> Michael Shuler a couple more thoughts.. 1) keep C*
> >>>> support in step with latest Ubuntu LTS OpenJDK major in main, 2)
> bundle JRE
> >>>> in C* releases? (JDK is not "legal" to bundle)
> >>>> 08:23:44 <spodkowinski> https://www.elastic.co/blog/elasticsearch-
> >>>> java-9-and-beyond  - interesting read on that matter
> >>>> 08:26:04 can't wait for the infra and CI testing implications.. will
> be
> >>>> lot's of fun ;(
> >>>> 08:42:13 <snazy> Robert Stupp Not sure whether stepping with Ubuntu is
> >>>> necessary. It's not so difficult to update apt.source ;)
> >>>> 08:42:43 CI ? It just let's your test matrix explode - a litte ;)
> >>>> 08:46:48 <exlt> Michael Shuler yep, we currently `def jdkLabel = 'JDK
> 1.8
> >>>> (latest)'` in job DSL and could easily modify that
> >>>>
> >>>> On Tue, Mar 20, 2018 at 9:08 AM, Kant Kodali <k...@peernova.com>
> wrote:
> >>>>
> >>>>> Java 10 is releasing today!
> >>>>>
> >>>>> On Tue, Mar 20, 2018 at 9:07 AM, Ariel Weisberg <ar...@weisberg.ws>
> >>>>> wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> +1 to what Jordan is saying.
> >>>>>>
> >>>>>> It seems like if we are cutting a release off of trunk we want to
> make
> >>>>>> sure we get N years of supported JDK out of it. For a single LTS
> >>>>> release N
> >>>>>> could be at most 3 and historically that isn't long enough and it's
> very
> >>>>>> likely we will get < 3 after a release is cut.
> >>>>>>
> >>>>>> Going beyond 3 years could be tricky in the worst case because
> bringing
> >>>>> in
> >>>>>> up to 3 years of JDK changes to an older release might mean some of
> our
> >>>>>> dependencies no longer function and now it's not just minor fixes
> it's
> >>>>>> bringing in who knows what in terms of updated dependencies.
> >>>>>>
> >>>>>> I think in some cases we are going to need to take a release we have
> >>>>>> already cut and make it work with an LTS release that didn't exist
> when
> >>>>> the
> >>>>>> release was cut.
> >>>>>>
> >>>>>> We also need to update how CI works. We should at least build and
> run a
> >>>>>> quick smoke test with the JDKs we are claiming to support and
> >>>>>> asynchronously run all the tests on the rather large matrix that now
> >>>>> exists.
> >>>>>>
> >>>>>> Ariel
> >>>>>>
> >>>>>> On Tue, Mar 20, 2018, at 11:07 AM, Jeremiah Jordan wrote:
> >>>>>>> My suggestion would be to keep trunk on the latest LTS by default,
> but
> >>>>>>> with compatibility with the latest release if possible.  Since
> Oracle
> >>>>>>> LTS releases are every 3 years, I would not want to tie us to that
> >>>>>>> release cycle?
> >>>>>>> So until Java 11 is out that would mean trunk should work under
> Java
> >>>>> 8,
> >>>>>>> with the option of being compiled/run under Java 9 or 10.  Once
> Java
> >>>>> 11
> >>>>>>> is out we could then switch to 11 only.
> >>>>>>>
> >>>>>>> -Jeremiah
> >>>>>>>
> >>>>>>> On Mar 20, 2018, at 10:48 AM, Jason Brown <jasedbr...@gmail.com>
> >>>>> wrote:
> >>>>>>>
> >>>>>>>>>> Wouldn't that potentially leave us in a situation where we're
> >>>>> ready
> >>>>>> for
> >>>>>>>> a C* release but blocked waiting on a new LTS cut?
> >>>>>>>>
> >>>>>>>> Agreed, and perhaps if we're close enough to a LTS release (say
> >>>>> three
> >>>>>>>> months or less), we could choose to delay (probably with community
> >>>>>>>> input/vote). If we're a year or two out, then, no, we should not
> >>>>> wait.
> >>>>>> I
> >>>>>>>> think this is what I meant to communicate by "Perhaps we can
> >>>>> evaluate
> >>>>>> this
> >>>>>>>> over time." (poorly stated, in hindsight)
> >>>>>>>>
> >>>>>>>>> On Tue, Mar 20, 2018 at 7:22 AM, Josh McKenzie <
> >>>>> jmcken...@apache.org>
> >>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> Need a little clarification on something:
> >>>>>>>>>
> >>>>>>>>>> 2) always release cassandra on a LTS version
> >>>>>>>>> combined with:
> >>>>>>>>>> 3) keep trunk on the lasest jdk version, assumming we release a
> >>>>> major
> >>>>>>>>>> cassandra version close enough to a LTS release.
> >>>>>>>>>
> >>>>>>>>> Wouldn't that potentially leave us in a situation where we're
> ready
> >>>>>>>>> for a C* release but blocked waiting on a new LTS cut? For
> >>>>> example, if
> >>>>>>>>> JDK 9 were the currently supported LTS and trunk was on JDK 11,
> >>>>> we'd
> >>>>>>>>> either have to get trunk to work with 9 or wait for 11 to resolve
> >>>>>>>>> that.
> >>>>>>>>>
> >>>>>>>>>> On Tue, Mar 20, 2018 at 9:32 AM, Jason Brown <
> >>>>> jasedbr...@gmail.com>
> >>>>>> wrote:
> >>>>>>>>>> Hi all,
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> TL;DR Oracle has started revving the JDK version much faster,
> and
> >>>>> we
> >>>>>> need
> >>>>>>>>>> an agreed upon plan.
> >>>>>>>>>>
> >>>>>>>>>> Well, we probably should has this discussion this already by
> now,
> >>>>> but
> >>>>>>>>> here
> >>>>>>>>>> we are. Oracle announced plans to release updated JDK version
> >>>>> every
> >>>>>> six
> >>>>>>>>>> months, and each new version immediate supercedes the previous
> in
> >>>>> all
> >>>>>>>>> ways:
> >>>>>>>>>> no updates/security fixes to previous versions is the main
> thing,
> >>>>> and
> >>>>>>>>>> previous versions are EOL'd immediately. In addition, Oracle has
> >>>>>> planned
> >>>>>>>>>> parallel LTS versions that will live for three years, and then
> >>>>>> superceded
> >>>>>>>>>> by the next LTS; but not immediately EOL'd from what I can tell.
> >>>>>> Please
> >>>>>>>>> see
> >>>>>>>>>> [1, 2] for Oracle's offical comments about this change ([3] was
> >>>>>>>>>> particularly useful, imo), [4] and many other postings on the
> >>>>>> internet
> >>>>>>>>> for
> >>>>>>>>>> discussion/commentary.
> >>>>>>>>>>
> >>>>>>>>>> We have a jira [5] where Robert Stupp did most of the work to
> get
> >>>>> us
> >>>>>> onto
> >>>>>>>>>> Java 9 (thanks, Robert), but then the announcement of the JDK
> >>>>> version
> >>>>>>>>>> changes happened last fall after Robert had done much of the
> work
> >>>>> on
> >>>>>> the
> >>>>>>>>>> ticket.
> >>>>>>>>>>
> >>>>>>>>>> Here's an initial proposal of how to move forward. I don't
> suspect
> >>>>>> it's
> >>>>>>>>>> complete, but a decent place to start a conversation.
> >>>>>>>>>>
> >>>>>>>>>> 1) receommend OracleJDK over OpenJDK. IIUC from [3], the OpenJDK
> >>>>> will
> >>>>>>>>>> release every six months, and the OracleJDK will release every
> >>>>> three
> >>>>>>>>> years.
> >>>>>>>>>> Thus, the OracleJDK is the LTS version, and it just comes from a
> >>>>>> snapshot
> >>>>>>>>>> of one of those OpenJDK builds.
> >>>>>>>>>>
> >>>>>>>>>> 2) always release cassandra on a LTS version. I don't think we
> can
> >>>>>>>>>> reasonably expect operators to update the JDK every six months,
> on
> >>>>>> time.
> >>>>>>>>>> Further, if there are breaking changes to the JDK, we don't want
> >>>>> to
> >>>>>> have
> >>>>>>>>> to
> >>>>>>>>>> update established c* versions due to those changes, every six
> >>>>>> months.
> >>>>>>>>>>
> >>>>>>>>>> 3) keep trunk on the lasest jdk version, assumming we release a
> >>>>> major
> >>>>>>>>>> cassandra version close enough to a LTS release. Currently that
> >>>>> seems
> >>>>>>>>>> reasonable for cassandra 4.0 to be released with java 11 (18.9
> >>>>> LTS)
> >>>>>>>>>> support. Perhaps we can evaluate this over time.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Once we agree on a path forward, *it is impreative that we
> publish
> >>>>>> the
> >>>>>>>>>> decision to the docs* so we can point contributors and operators
> >>>>>> there,
> >>>>>>>>>> instead of rehashing the same conversation.
> >>>>>>>>>>
> >>>>>>>>>> I look forward to a lively discussion. Thanks!
> >>>>>>>>>>
> >>>>>>>>>> -Jason
> >>>>>>>>>>
> >>>>>>>>>> [1] http://www.oracle.com/technetwork/java/eol-135779.html
> >>>>>>>>>> [2]
> >>>>>>>>>> https://blogs.oracle.com/java-platform-group/faster-and-
> >>>>>>>>> easier-use-and-redistribution-of-java-se
> >>>>>>>>>> [3]
> >>>>>>>>>> https://www.oracle.com/java/java9-screencasts.html?bcid=
> >>>>>>>>> 5582439790001&playerType=single-social&size=events
> >>>>>>>>>> [4]
> >>>>>>>>>> http://blog.joda.org/2018/02/java-9-has-six-weeks-to-live.
> >>>>>>>>> html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+
> >>>>>>>>> StephenColebournesBlog+%28Stephen+Colebourne%27s+blog%29
> >>>>>>>>>> [5] https://issues.apache.org/jira/browse/CASSANDRA-9608
> >>>>>>>>>
> >>>>>>>>> ------------------------------------------------------------
> >>>>> ---------
> >>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>>>>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>> ------------------------------------------------------------
> ---------
> >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>>>>>
> >>>>>>
> >>>>>> ------------------------------------------------------------
> ---------
> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> >> For additional commands, e-mail: dev-h...@cassandra.apache.org
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> > For additional commands, e-mail: dev-h...@cassandra.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: dev-h...@cassandra.apache.org
>
>

Reply via email to