[jira] [Created] (HBASE-21549) Add shell command for serial replication peer

2018-12-04 Thread Guanghao Zhang (JIRA)
Guanghao Zhang created HBASE-21549:
--

 Summary: Add shell command for serial replication peer
 Key: HBASE-21549
 URL: https://issues.apache.org/jira/browse/HBASE-21549
 Project: HBase
  Issue Type: Improvement
Reporter: Guanghao Zhang






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Sean Busbey
That sounds like a fine plan for Phoenix to do.

Please no changing minimum jdk requirements for HBase in minor releases.

It's bad enough that we had to give up on Hadoop compatibility for minor
releases. I'm sure it's only a matter of time before that puts us in a bad
spot wrt JDK support.

On Tue, Dec 4, 2018, 19:05 Thomas D'Silva  I think Phoenix might end up moving the connector modules (spark, kakfa
> etc) and the query server into a separate repos
> so that they can be compiled with Java 8. Phoenix core would continue to
> maintain the same java version compatibility as HBase.
>
>
> On Tue, Dec 4, 2018 at 4:37 PM Andrew Purtell  wrote:
>
> > 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 
> > 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 
> > 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 
> 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  > 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 
> > wrote:
> > > > > >
> > > > > > > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > > > > > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser  >
> > > > 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 tryi

Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Thomas D'Silva
I think Phoenix might end up moving the connector modules (spark, kakfa
etc) and the query server into a separate repos
so that they can be compiled with Java 8. Phoenix core would continue to
maintain the same java version compatibility as HBase.


On Tue, Dec 4, 2018 at 4:37 PM Andrew Purtell  wrote:

> 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 
> 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 
> 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  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  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 
> wrote:
> > > > >
> > > > > > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > > > > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser 
> > > 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 maintain

Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Andrew Purtell
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 
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  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  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  > >
> > > > 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  wrote:
> > > >
> > > > > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > > > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser 
> > 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 

Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Zach York
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  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  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  >
> > > 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  wrote:
> > >
> > > > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser 
> 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
>


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Andrew Purtell
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  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 
> > 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  wrote:
> >
> > > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser  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


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Sean Busbey
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  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  wrote:
>
> > On 12/4/18 3:28 PM, Sean Busbey wrote:
> > > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser  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
>


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Andrew Purtell
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  wrote:

> On 12/4/18 3:28 PM, Sean Busbey wrote:
> > On Tue, Dec 4, 2018 at 2:14 PM Josh Elser  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


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Josh Elser

On 12/4/18 3:28 PM, Sean Busbey wrote:

On Tue, Dec 4, 2018 at 2:14 PM Josh Elser  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.


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Sean Busbey
On Tue, Dec 4, 2018 at 2:14 PM Josh Elser  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?


> 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.


Re: [DISCUSS] JDK8 for >=1.5.x?

2018-12-04 Thread Josh Elser
Phoenix depends on Avatica for its Phoenix Query Server. Avatica 
requires Java8. Thus, the impasse.


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.


On 11/30/18 4:55 PM, Sean Busbey wrote:

I'm opposed if only because I don't like weakening our compatibility
promises.

What does Phoenix (or other downstream folks) lose out on because we work
with jdk7 on our branch-1 releases?

On Fri, Nov 30, 2018, 15:20 Josh Elser 
We came back across this in Phoenix recently and Andrew suggested we
talk about it here in HBase.

Can/should we move to requiring Java8 for HBase 1.5 and beyond?

It would have my vote.

- Josh





[jira] [Resolved] (HBASE-21531) race between region report and region move causes master to kill RS

2018-12-04 Thread Sergey Shelukhin (JIRA)


 [ 
https://issues.apache.org/jira/browse/HBASE-21531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Shelukhin resolved HBASE-21531.
--
Resolution: Duplicate

> race between region report and region move causes master to kill RS
> ---
>
> Key: HBASE-21531
> URL: https://issues.apache.org/jira/browse/HBASE-21531
> Project: HBase
>  Issue Type: Bug
>Reporter: Sergey Shelukhin
>Priority: Major
>
> In this case the delay between the ack from RS and the region report was 
> 1.5s, so I'm not sure what caused the race (network hiccup? unreported retry 
> by protobuf transport?) but in any case I don't see anything that prevents 
> this from happening in a normal case, with a narrowed time window. Any delay 
> (e.g. a GC pause on RS right after the report is built, and ack is sent for 
> the close) or retries expands the window.
> Master starts moving the region and the source RS acks by 21:51,206
> {noformat}
> Master:
> 2018-11-21 21:21:49,024 INFO  [master/6:17000.Chore.1] master.HMaster: 
> balance hri=, source=,17020,1542754626176, destination= 2>,17020,1542863268158
> ...
> Server:
> 2018-11-21 21:21:49,394 INFO  [RS_CLOSE_REGION-regionserver/:17020-1] 
> handler.UnassignRegionHandler: Close 
> ...
> 2018-11-21 21:21:51,095 INFO  [RS_CLOSE_REGION-regionserver/:17020-1] 
> handler.UnassignRegionHandler: Closed 
> {noformat}
> By then the region is removed from onlineRegions, so the master proceeds.
> {noformat}
> 2018-11-21 21:21:51,206 INFO  [PEWorker-4] procedure2.ProcedureExecutor: 
> Finished subprocedure(s) of pid=667, 
> state=RUNNABLE:REGION_STATE_TRANSITION_CONFIRM_CLOSED, hasLock=true; 
> TransitRegionStateProcedure table=, region=, REOPEN/MOVE; 
> resume parent processing.
> 2018-11-21 21:21:51,386 INFO  [PEWorker-13] assignment.RegionStateStore: 
> pid=667 updating hbase:meta row=, regionState=OPENING, 
> regionLocation=,17020,1542863268158
> {noformat}
> There are no obvious errors/delays that I see in RS log, and it doesn't log 
> starting to send the report.
> However, at 21:52.853 the report is processed that still contains this region.
> {noformat}
> 2018-11-21 21:21:52,853 WARN  
> [RpcServer.default.FPBQ.Fifo.handler=48,queue=3,port=17000] 
> assignment.AssignmentManager: Killing ,17020,1542754626176: 
> rit=OPENING, location=,17020,1542863268158, table=, 
> region= reported OPEN on server=,17020,1542754626176 but 
> state has otherwise.
> * ABORTING region server ,17020,1542754626176: 
> org.apache.hadoop.hbase.YouAreDeadException: rit=OPENING, location= 2>,17020,1542863268158, table=, region= reported OPEN on 
> server=,17020,1542754626176 but state has otherwise.
> {noformat}
> RS shuts down in an orderly manner and it can be seen from the log that this 
> region is actually not present (there's no line indicating it's being closed, 
> unlike for other regions).
> I think there needs to be some sort of versioning for region operations 
> and/or in RS reports to allow master to account for concurrent operations and 
> avoid races. Probably per region with either a grace period or an additional 
> global version, so that master could avoid killing RS based on stale reports, 
> but still kill RS if it did retain an old version of the region state due to 
> some bug after acking a new version.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: About to release 1.4.9

2018-12-04 Thread Andrew Purtell
Needed another round with HBASE-21464. I plan to commit a fix for this
today, to unblock the release, and roll a new RC.


On Thu, Nov 29, 2018 at 5:55 PM Andrew Purtell  wrote:

> Now that HBASE-21464 is in it is time for 1.4.9 RC0. Preparing and
> testing tomorrow. Should have a vote on it next week.
>
> --
> 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


[jira] [Created] (HBASE-21548) CLONE - WAL writer for recovered.edits file in WalSplitting should not require hflush from filesystem

2018-12-04 Thread Josh Elser (JIRA)
Josh Elser created HBASE-21548:
--

 Summary: CLONE - WAL writer for recovered.edits file in 
WalSplitting should not require hflush from filesystem
 Key: HBASE-21548
 URL: https://issues.apache.org/jira/browse/HBASE-21548
 Project: HBase
  Issue Type: Bug
  Components: wal
Reporter: Josh Elser
Assignee: Josh Elser
 Fix For: 2.0.4


Been talking through this with a bunch of folks. [~enis] brought me back from 
the cliff of despair though.

Context: running HBase on top of a filesystem that doesn't have hflush for 
hfiles. In our case, on top of Azure's Hadoop-compatible filesystems (WASB, 
ABFS).

When a RS fails and we have an SCP running for it, you'll see log splitting get 
into an "infinite" loop where the master keeps resubmitting and the RS which 
takes the action deterministically fails with the following:
{noformat}
2018-11-26 20:59:18,415 ERROR 
[RS_LOG_REPLAY_OPS-regionserver/wn2-b831f9:16020-0-Writer-2] 
wal.FSHLogProvider: The RegionServer write ahead log provider for FileSystem 
implementations relies on the ability to call hflush for proper operation 
during component failures, but the current FileSystem does not support doing 
so. Please check the config value of 'hbase.wal.dir' and ensure it points to a 
FileSystem mount that has suitable capabilities for output streams.
2018-11-26 20:59:18,415 WARN  
[RS_LOG_REPLAY_OPS-regionserver/wn2-b831f9:16020-0-Writer-2] 
wal.AbstractProtobufLogWriter: WALTrailer is null. Continuing with default.
2018-11-26 20:59:18,467 ERROR 
[RS_LOG_REPLAY_OPS-regionserver/wn2-b831f9:16020-0-Writer-2] wal.WALSplitter: 
Got while writing log entry to log
java.io.IOException: cannot get log writer
at 
org.apache.hadoop.hbase.wal.FSHLogProvider.createWriter(FSHLogProvider.java:96)
at 
org.apache.hadoop.hbase.wal.FSHLogProvider.createWriter(FSHLogProvider.java:61)
at 
org.apache.hadoop.hbase.wal.WALFactory.createRecoveredEditsWriter(WALFactory.java:370)
at 
org.apache.hadoop.hbase.wal.WALSplitter.createWriter(WALSplitter.java:804)
at 
org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.createWAP(WALSplitter.java:1530)
at 
org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.getWriterAndPath(WALSplitter.java:1501)
at 
org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.appendBuffer(WALSplitter.java:1584)
at 
org.apache.hadoop.hbase.wal.WALSplitter$LogRecoveredEditsOutputSink.append(WALSplitter.java:1566)
at 
org.apache.hadoop.hbase.wal.WALSplitter$WriterThread.writeBuffer(WALSplitter.java:1090)
at 
org.apache.hadoop.hbase.wal.WALSplitter$WriterThread.doRun(WALSplitter.java:1082)
at 
org.apache.hadoop.hbase.wal.WALSplitter$WriterThread.run(WALSplitter.java:1052)
Caused by: 
org.apache.hadoop.hbase.util.CommonFSUtils$StreamLacksCapabilityException: 
hflush
at 
org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initOutput(ProtobufLogWriter.java:99)
at 
org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.init(AbstractProtobufLogWriter.java:165)
at 
org.apache.hadoop.hbase.wal.FSHLogProvider.createWriter(FSHLogProvider.java:77)
... 10 more{noformat}
This is the sanity check added by HBASE-18784, failing on creating the writer 
for the recovered.edits file.

The odd-ball here is that our recovered.edits writer is just a WAL writer 
class. The WAL writer class thinks it always should have hflush support; 
however, we don't _actually_ need that for writing out the recovered.edits 
files. If {{close()}} on the recovered.edits file would fail, we're trash any 
intermediate data in the filesystem and rerun the whole process.

It's my understanding that this check is over-bearing and we should not make 
the check when the ProtobufLogWriter is being used for the recovered.edits file.

[~zyork], [~busbey] fyi



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-21547) Precommit uses master flaky list for other branches

2018-12-04 Thread Peter Somogyi (JIRA)
Peter Somogyi created HBASE-21547:
-

 Summary: Precommit uses master flaky list for other branches
 Key: HBASE-21547
 URL: https://issues.apache.org/jira/browse/HBASE-21547
 Project: HBase
  Issue Type: Bug
  Components: test
Reporter: Peter Somogyi


Precommit job downloads the flaky exclude list for master branch when the 
uploaded patch file is made for different branches.

As an example check [https://builds.apache.org/job/PreCommit-HBASE-Build/15192] 
which was against branch-1 but the unit test downloaded master's flaky list.
{noformat}
15:26:05 [Tue Dec  4 14:26:04 UTC 2018 INFO]: Personality: patch unit
15:26:05 [Tue Dec  4 14:26:04 UTC 2018 INFO]: 
EXCLUDE_TESTS_URL=https://builds.apache.org/job/HBase-Find-Flaky-Tests/job/master/lastSuccessfulBuild/artifact/excludes/
15:26:05 [Tue Dec  4 14:26:04 UTC 2018 INFO]: INCLUDE_TESTS_URL=
15:26:05 --2018-12-04 14:26:04--  
https://builds.apache.org/job/HBase-Find-Flaky-Tests/job/master/lastSuccessfulBuild/artifact/excludes/
15:26:05 Resolving builds.apache.org (builds.apache.org)... 195.201.213.130, 
2a01:4f8:c0:2cc9::2
15:26:05 Connecting to builds.apache.org 
(builds.apache.org)|195.201.213.130|:443... connected.
15:26:06 HTTP request sent, awaiting response... 200 
15:26:06 Length: 866 [application/octet-stream]
15:26:06 Saving to: 'excludes'
15:26:06 
15:26:06  0K   100% 
43.0M=0s
15:26:06 
15:26:06 2018-12-04 14:26:06 (43.0 MB/s) - 'excludes' saved [866/866]
15:26:06 
15:26:09 cd /testptch/hbase/hbase-thrift
15:26:09 mvn --batch-mode 
-Dmaven.repo.local=/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/yetus-m2/hbase-branch-1-patch-1
 -DHBasePatchProcess -Dhttps.protocols=TLSv1.2 -PrunAllTests 
-Dtest.exclude.pattern=**/master.cleaner.TestSnapshotFromMaster.java,**/client.TestRestoreSnapshotFromClientAfterSplittingRegions.java,**/regionserver.TestRegionMergeTransactionOnCluster.java,**/client.TestCloneSnapshotFromClientAfterSplittingRegion.java,**/master.assignment.TestAssignmentManager.java,**/master.assignment.TestAMAssignWithRandExec.java,**/client.TestMobCloneSnapshotFromClientAfterSplittingRegion.java,**/regionserver.TestCompactingToCellFlatMapMemStore.java,**/replication.TestReplicationSmallTestsSync.java,**/TestMultiVersions.java,**/client.TestMobRestoreSnapshotFromClientAfterSplittingRegions.java,**/client.TestRestoreSnapshotFromClientWithRegionReplicas.java,**/regionserver.TestRegionServerAbortTimeout.java,**/replication.TestMasterReplication.java,**/backup.TestIncrementalBackupWithBulkLoad.java,**/master.replication.TestRegisterPeerWorkerWhenRestarting.java
 clean test -fae > /testptch/patchprocess/patch-unit-hbase-thrift.txt 2>&1
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-21546) ConnectException in TestThriftHttpServer

2018-12-04 Thread Peter Somogyi (JIRA)
Peter Somogyi created HBASE-21546:
-

 Summary: ConnectException in TestThriftHttpServer
 Key: HBASE-21546
 URL: https://issues.apache.org/jira/browse/HBASE-21546
 Project: HBase
  Issue Type: Bug
  Components: test, Thrift
Affects Versions: 1.4.9, 1.5.0
Reporter: Peter Somogyi
Assignee: Peter Somogyi


TestThriftHttpServer is the first on the flaky list for branch-1 and branch-1.4 
with approximately 60% failure rate.

Thrift server is not yet accepting request at the time the test starts. 

java.net.ConnectException: Connection refused (Connection refused) at 
org.apache.hadoop.hbase.thrift.TestThriftHttpServer.checkHttpMethods(TestThriftHttpServer.java:275)
 at 
org.apache.hadoop.hbase.thrift.TestThriftHttpServer.testThriftServerHttpOptionsForbiddenWhenOptionsDisabled(TestThriftHttpServer.java:176)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)