Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.7.0
    • Labels:
      None

      Description

      Sometime it is useful to force a query to executed serially.

      For example a user might want to run a query which is not latency sensitive to him/her. In that case providing the SERIAL hint puts less load on the HBase cluster and impact other more latency sensitive queries less.

      (In my case I want to use this for testing.)

      1. PHOENIX-2697-4.6.txt
        9 kB
        Lars Hofhansl
      2. PHOENIX-2697-4.7.txt
        12 kB
        Lars Hofhansl

        Activity

        Hide
        lhofhansl Lars Hofhansl added a comment -

        Done. Deleted branch 4.x-HBase-1.1.

        Show
        lhofhansl Lars Hofhansl added a comment - Done. Deleted branch 4.x-HBase-1.1.
        Hide
        hudson Hudson added a comment -

        SUCCESS: Integrated in Phoenix-master #1149 (See https://builds.apache.org/job/Phoenix-master/1149/)
        PHOENIX-2697 Provide a SERIAL hint. (larsh: rev 0b1a180f1d9acc23cf58ecfc84a67aac110160cd)

        • phoenix-core/src/main/java/org/apache/phoenix/execute/ScanPlan.java
        • phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java
        • phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java
        • phoenix-core/src/main/java/org/apache/phoenix/execute/AggregatePlan.java
        • phoenix-core/src/test/java/org/apache/phoenix/compile/StatementHintsCompilationTest.java
        • phoenix-core/src/main/java/org/apache/phoenix/parse/HintNode.java
        Show
        hudson Hudson added a comment - SUCCESS: Integrated in Phoenix-master #1149 (See https://builds.apache.org/job/Phoenix-master/1149/ ) PHOENIX-2697 Provide a SERIAL hint. (larsh: rev 0b1a180f1d9acc23cf58ecfc84a67aac110160cd) phoenix-core/src/main/java/org/apache/phoenix/execute/ScanPlan.java phoenix-core/src/main/java/org/apache/phoenix/iterate/SerialIterators.java phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java phoenix-core/src/main/java/org/apache/phoenix/execute/AggregatePlan.java phoenix-core/src/test/java/org/apache/phoenix/compile/StatementHintsCompilationTest.java phoenix-core/src/main/java/org/apache/phoenix/parse/HintNode.java
        Hide
        jamestaylor James Taylor added a comment -

        Should I/we delete the 4.x-HBase-1.1?

        Yes, please.

        Show
        jamestaylor James Taylor added a comment - Should I/we delete the 4.x-HBase-1.1? Yes, please.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Offtopic from this jira... Should I/we delete the 4.x-HBase-1.1?

        Show
        lhofhansl Lars Hofhansl added a comment - Offtopic from this jira... Should I/we delete the 4.x-HBase-1.1?
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Pushed to master, 4.x-HBase-0.98, and 4.x-HBase-1.0.
        (I might have accidentally (re)created the 4.x-HBase-1.1 branch)

        Show
        lhofhansl Lars Hofhansl added a comment - Pushed to master, 4.x-HBase-0.98, and 4.x-HBase-1.0. (I might have accidentally (re)created the 4.x-HBase-1.1 branch)
        Hide
        jamestaylor James Taylor added a comment -

        The 4.x-HBase-1.1 was a mistake and was deleted. We release the 1.1 releases from master.

        Show
        jamestaylor James Taylor added a comment - The 4.x-HBase-1.1 was a mistake and was deleted. We release the 1.1 releases from master.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Hmm... git branch -a gives me this:
        ...
        remotes/origin/4.x-HBase-0.98
        remotes/origin/4.x-HBase-1.0
        remotes/origin/4.x-HBase-1.1
        ...

        But when I checkout 4.x-HBase-1.1 I can't pull from it. Weird.

        Show
        lhofhansl Lars Hofhansl added a comment - Hmm... git branch -a gives me this: ... remotes/origin/4.x-HBase-0.98 remotes/origin/4.x-HBase-1.0 remotes/origin/4.x-HBase-1.1 ... But when I checkout 4.x-HBase-1.1 I can't pull from it. Weird.
        Hide
        jamestaylor James Taylor added a comment -

        Actually, I don't see a 4.x-HBase-1.x branch: https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=summary

        Show
        jamestaylor James Taylor added a comment - Actually, I don't see a 4.x-HBase-1.x branch: https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=summary
        Hide
        jamestaylor James Taylor added a comment -

        +1. Thanks, Lars Hofhansl. I'm confused by the existence of a 4.x-HBase-1.x branch too - I'll ask about that on the dev list.

        Show
        jamestaylor James Taylor added a comment - +1. Thanks, Lars Hofhansl . I'm confused by the existence of a 4.x-HBase-1.x branch too - I'll ask about that on the dev list.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Here's a patch against master. Also includes a simple test. Should be good to commit.
        If I get a +1 I'll commit to master and all three 4.x branches.

        Show
        lhofhansl Lars Hofhansl added a comment - Here's a patch against master. Also includes a simple test. Should be good to commit. If I get a +1 I'll commit to master and all three 4.x branches.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Thanks I guess what threw me off was the 4.x-HBase-1.x branch.

        Show
        lhofhansl Lars Hofhansl added a comment - Thanks I guess what threw me off was the 4.x-HBase-1.x branch.
        Hide
        jamestaylor James Taylor added a comment -

        It'd be fine for the next release (4.7.1 or 4.8.0). Since it's 100% client-side, it'd be fine in a 4.7.1 release.

        4.x-HBase-0.98 is used to release the 0.98 compatible releases for 4.5, 4.6, 4.7, etc.
        4.x-HBase-1.0 is used to release the 1.0 compatible releases for 4.5, 4.6, 4.7, etc.
        master is used to release the 1.1+ compatible releases for 4.5, 4.6, 4.7, etc.

        We create a 4.6-HBase-0.98, 4.6-HBase-1.0, and 4.6-HBase-1.1 branch upon release of the 4.6 release so that in the event there is user demand for patch releases (and an RM willing to step up) we have a branch on which to commit fixes.

        Our typical modus operandi has been to continue active development on the 4.x and master branches to minimize back porting while ensuring that we maintain backward compatibility with previous minor releases such that users can upgrade through a rolling restart. Our contract (http://phoenix.apache.org/upgrading.html) is to support two minor releases back, but for 4.7 we've tested back as far as 4.4.

        Show
        jamestaylor James Taylor added a comment - It'd be fine for the next release (4.7.1 or 4.8.0). Since it's 100% client-side, it'd be fine in a 4.7.1 release. 4.x-HBase-0.98 is used to release the 0.98 compatible releases for 4.5, 4.6, 4.7, etc. 4.x-HBase-1.0 is used to release the 1.0 compatible releases for 4.5, 4.6, 4.7, etc. master is used to release the 1.1+ compatible releases for 4.5, 4.6, 4.7, etc. We create a 4.6-HBase-0.98, 4.6-HBase-1.0, and 4.6-HBase-1.1 branch upon release of the 4.6 release so that in the event there is user demand for patch releases (and an RM willing to step up) we have a branch on which to commit fixes. Our typical modus operandi has been to continue active development on the 4.x and master branches to minimize back porting while ensuring that we maintain backward compatibility with previous minor releases such that users can upgrade through a rolling restart. Our contract ( http://phoenix.apache.org/upgrading.html ) is to support two minor releases back, but for 4.7 we've tested back as far as 4.4.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Doesn't need to be in 4.7.0, although maybe it's strange to add this in 4.7.1.

        I'm a bit confused about the branches. I see 4.x-HBase-1.x. But then the the pom from the master branch has 4.7.0-HBase-1.1.
        So do I put this into master and cherry-pick down to the 4.x branches? Or is master not used?

        Show
        lhofhansl Lars Hofhansl added a comment - Doesn't need to be in 4.7.0, although maybe it's strange to add this in 4.7.1. I'm a bit confused about the branches. I see 4.x-HBase-1.x. But then the the pom from the master branch has 4.7.0-HBase-1.1. So do I put this into master and cherry-pick down to the 4.x branches? Or is master not used?
        Hide
        jamestaylor James Taylor added a comment -

        FYI, we release out of the 4.x and master branches. No plans to release from 4.6 branches.

        As far as testing, I'd recommend adding one to QueryPlanTest.testExplainPlan().

        Show
        jamestaylor James Taylor added a comment - FYI, we release out of the 4.x and master branches. No plans to release from 4.6 branches. As far as testing, I'd recommend adding one to QueryPlanTest.testExplainPlan().
        Hide
        jamestaylor James Taylor added a comment -

        Thanks for the patch, Lars Hofhansl. It looks good. We're shooting to roll a new RC for 4.7.0 tomorrow, so let me know if you need this in there.

        Show
        jamestaylor James Taylor added a comment - Thanks for the patch, Lars Hofhansl . It looks good. We're shooting to roll a new RC for 4.7.0 tomorrow, so let me know if you need this in there.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Here's a simple patch against the top of the 4.6-0.98 branch, which is used for testing.

        If the general direction of that patch is good, I'll clean it up a bit and make a patch against master.

        Show
        lhofhansl Lars Hofhansl added a comment - Here's a simple patch against the top of the 4.6-0.98 branch, which is used for testing. If the general direction of that patch is good, I'll clean it up a bit and make a patch against master.

          People

          • Assignee:
            lhofhansl Lars Hofhansl
            Reporter:
            lhofhansl Lars Hofhansl
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development