I'm not taking a position, just pointing out that dropping Phoenix
coprocessors compiled with Java 8 into a Java 7 runtime won't work. It is
unclear at least to me if mixing HBase compiled with Java 7 and
coprocessors compiled with Java 8 in a Java 8 runtime would be ok.

Based on that I would say Phoenix, at least the coprocessor code, is
constrained by the compatibility choices that HBase makes.

That said I don't know of an obstacle to a build process on the Phoenix
side that uses Java 7 to build coprocessors and Java 8 to build the PQS.
Maybe someone on the Phoenix project has tried it? Or can try it?

On Tue, Dec 4, 2018 at 4:33 PM Zach York <zyork.contribut...@gmail.com>
wrote:

> Isn't Phoenix's compatibility guarantees separate from HBase's? If Phoenix
> only works with a Java8 environment, then couldn't Phoenix only support
> Java8 environments in releases after the Java 8 Avatica issue without
> requiring HBase's compatibility to drop support for Java7?
>
> While it's nice to have Phoenix and HBase compatibility guarantees remain
> in sync, I don't think that's a requirement for either project.
> I do feel like dropping support for a java version in a minor release is
> very questionable as a Java upgrade isn't always trivial. Unfortunately,
> this is a by product of our long lived release lines.
>
> On Tue, Dec 4, 2018 at 4:21 PM Andrew Purtell <apurt...@apache.org> wrote:
>
> > We have the current compatibility promise that we will build with Java 7
> so
> > folks using a Java 7 JRE can consume and deploy them.
> >
> > If we will be assuming Java 8 runtimes predominate, then we can build
> with
> > Java 8.
> >
> >
> > On Tue, Dec 4, 2018 at 4:15 PM Sean Busbey <bus...@apache.org> wrote:
> >
> > > What about installing Phoenix coprocessors built with Java 8 into a
> Java
> > 8
> > > runtime that's running the currently built for jdk7 HBase? Shouldn't
> that
> > > work fine?
> > >
> > > On Tue, Dec 4, 2018, 16:16 Andrew Purtell <apurt...@apache.org wrote:
> > >
> > > > I thought only the Avatica module aka PQS must be compiled using Java
> > 8?
> > > > Maybe you can script a Phoenix build that uses the Java 7 compiler
> for
> > > the
> > > > coprocessor modules and a Java 8 compiler only for the PQS?
> > > >
> > > > Otherwise, if all Phoenix modules including the coprocessor code are
> > > > compiled with Java 8, then HBase must also be compiled with Java 8.
> If
> > > you
> > > > attempt to install Phoenix coprocessors compiled with Java 8 into a
> > Java
> > > > 7 + HBase runtime then you will see fatal runtime errors related to
> > > linkage
> > > > errors in the concurrent data types.
> > > >
> > > >
> > > > On Tue, Dec 4, 2018 at 1:54 PM Josh Elser <els...@apache.org> wrote:
> > > >
> > > > > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > > > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser <els...@apache.org>
> > wrote:
> > > > > >>
> > > > > >> Phoenix depends on Avatica for its Phoenix Query Server. Avatica
> > > > > >> requires Java8. Thus, the impasse.
> > > > > >>
> > > > > >
> > > > > > Generally our maintaining JDK7 support shouldn't limit the
> ability
> > of
> > > > > > any downstream user to require a newer JDK. Is there some context
> > I'm
> > > > > > missing? Are they manually recompiling some part of our codebase
> > that
> > > > > > doesn't work with JDK8? Or do they not want to have folks
> > complaining
> > > > > > to them for requiring a JDK update that we don't require?
> > > > >
> > > > > Phoenix isn't doing anything exceptional.
> > > > >
> > > > > I'm struggling to find the Phoenix thread where Andrew P suggested
> > that
> > > > > I start this discussion in HBase. I don't remember if Phoenix is
> > using
> > > > > JDK7 purely to build solely because HBase does, or if there is a
> > > > > technical reason that this is required. I'll have to keep looking.
> > > > >
> > > > > >> I'd pose the question: are we really doing our users a service
> for
> > > > > >> continuing to allow them to use Java7? Not trying to be
> > contentious
> > > in
> > > > > >> asking that -- I am just (happily) seeing fewer and fewer folks
> > > still
> > > > on
> > > > > >> Java7.
> > > > > >
> > > > > > Yes. Making it so downstream folks don't have to worry about
> > certain
> > > > > > categories of changes is the entire advantage of us declaring
> > > backward
> > > > > > compatibility promises at all. JDK changes are a big deal in any
> > > > > > deployment.
> > > > > >
> > > > > > As a project we already have a path forward for no longer
> worrying
> > > > > > about maintaining Java 7 support; it's Apache HBase 2+. Providing
> > > > > > advantages for that move and reducing the risk of updating to it
> > is a
> > > > > > straight forward way to remove our limitation on JDK features.
> > IMHO,
> > > > > > making it riskier to upgrade to newer 1.y minor versions is an
> > > > > > undesirable way to drive that change.
> > > > >
> > > > > I disagree with you on this point but that is fine.
> > > > >
> > > >
> > > >
> > > > --
> > > > Best regards,
> > > > Andrew
> > > >
> > > > Words like orphans lost among the crosstalk, meaning torn from
> truth's
> > > > decrepit hands
> > > >    - A23, Crosstalk
> > > >
> > >
> >
> >
> > --
> > Best regards,
> > Andrew
> >
> > Words like orphans lost among the crosstalk, meaning torn from truth's
> > decrepit hands
> >    - A23, Crosstalk
> >
>


-- 
Best regards,
Andrew

Words like orphans lost among the crosstalk, meaning torn from truth's
decrepit hands
   - A23, Crosstalk

Reply via email to