Skip to content

HBASE-24859: Optimize in-memory representation of HBase map reduce table splits#2591

Merged
bharathv merged 4 commits into
apache:branch-1from
sandeepvinayak:HBASE-24859-branch-1
Oct 30, 2020
Merged

HBASE-24859: Optimize in-memory representation of HBase map reduce table splits#2591
bharathv merged 4 commits into
apache:branch-1from
sandeepvinayak:HBASE-24859-branch-1

Conversation

@sandeepvinayak
Copy link
Copy Markdown
Contributor

@sandeepvinayak sandeepvinayak commented Oct 28, 2020

It has been observed that when the table has too many regions, MR jobs consume a lot of memory in the client. This is because we keep the region level information in memory and the memory heavy object is TableSplit because of the Scan object as a part of it.

However, it looks like the TableInputFormat for single table doesn't need to store the scan object in the TableSplit because we do not use it and all the splits are expected to have the exact same scan object. In TableInputFormat we use the scan object directly from the MR conf.

@sandeepvinayak sandeepvinayak changed the title HBASE-24859: Improve the storage cost for HBase map reduce table splits HBASE-24859: Optimize in-memory representation for HBase map reduce table splits Oct 28, 2020
@Apache-HBase
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 6m 52s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 50s branch-1 passed
+1 💚 compile 0m 42s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 46s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 41s branch-1 passed
+1 💚 shadedjars 3m 5s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 49s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 41s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 5s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 3m 2s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 58s the patch passed
+1 💚 compile 0m 42s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 42s the patch passed
+1 💚 compile 0m 45s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 45s the patch passed
+1 💚 checkstyle 1m 29s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 51s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 41s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
-1 ❌ javadoc 0m 32s hbase-server-jdk1.8.0_262 with JDK v1.8.0_262 generated 1 new + 8 unchanged - 0 fixed = 9 total (was 8)
-1 ❌ javadoc 0m 41s hbase-server-jdk1.7.0_272 with JDK v1.7.0_272 generated 1 new + 8 unchanged - 0 fixed = 9 total (was 8)
+1 💚 findbugs 2m 55s the patch passed
_ Other Tests _
+1 💚 unit 105m 17s hbase-server in the patch passed.
+1 💚 asflicense 0m 36s The patch does not generate ASF License warnings.
153m 44s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/1/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 8bd2f8cee8c6 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / b30d1d1
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
javadoc https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/1/artifact/out/diff-javadoc-javadoc-hbase-server-jdk1.8.0_262.txt
javadoc https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/1/artifact/out/diff-javadoc-javadoc-hbase-server-jdk1.7.0_272.txt
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/1/testReport/
Max. process+thread count 3942 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/1/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@sandeepvinayak sandeepvinayak changed the title HBASE-24859: Optimize in-memory representation for HBase map reduce table splits HBASE-24859: Optimize in-memory representation of HBase map reduce table splits Oct 28, 2020
@Apache-HBase
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 12m 24s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 37s branch-1 passed
+1 💚 compile 0m 41s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 44s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 40s branch-1 passed
+1 💚 shadedjars 3m 0s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 49s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 41s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 3s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 3m 1s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 55s the patch passed
+1 💚 compile 0m 40s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 40s the patch passed
+1 💚 compile 0m 46s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 46s the patch passed
+1 💚 checkstyle 1m 36s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 56s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 44s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
-1 ❌ javadoc 0m 33s hbase-server-jdk1.8.0_262 with JDK v1.8.0_262 generated 1 new + 8 unchanged - 0 fixed = 9 total (was 8)
-1 ❌ javadoc 0m 42s hbase-server-jdk1.7.0_272 with JDK v1.7.0_272 generated 1 new + 8 unchanged - 0 fixed = 9 total (was 8)
+1 💚 findbugs 2m 58s the patch passed
_ Other Tests _
-1 ❌ unit 137m 38s hbase-server in the patch failed.
+1 💚 asflicense 0m 36s The patch does not generate ASF License warnings.
191m 20s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/2/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 158ee93df235 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / b30d1d1
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
javadoc https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/2/artifact/out/diff-javadoc-javadoc-hbase-server-jdk1.8.0_262.txt
javadoc https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/2/artifact/out/diff-javadoc-javadoc-hbase-server-jdk1.7.0_272.txt
unit https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/2/artifact/out/patch-unit-hbase-server.txt
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/2/testReport/
Max. process+thread count 4098 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/2/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 42s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 53s branch-1 passed
+1 💚 compile 0m 44s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 46s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 44s branch-1 passed
+1 💚 shadedjars 3m 4s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 48s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 42s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 7s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 3m 4s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 57s the patch passed
+1 💚 compile 0m 43s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 43s the patch passed
+1 💚 compile 0m 43s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 43s the patch passed
+1 💚 checkstyle 1m 34s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 50s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 37s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
+1 💚 javadoc 0m 34s the patch passed with JDK v1.8.0_262
+1 💚 javadoc 0m 42s the patch passed with JDK v1.7.0_272
+1 💚 findbugs 2m 56s the patch passed
_ Other Tests _
+1 💚 unit 106m 51s hbase-server in the patch passed.
+1 💚 asflicense 0m 32s The patch does not generate ASF License warnings.
149m 13s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/3/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 060e7bb3d2a2 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / b30d1d1
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/3/testReport/
Max. process+thread count 3930 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/3/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

List<InputSplit> splits = new ArrayList<>(1);
long regionSize = sizeCalculator.getRegionSize(regLoc.getRegionInfo().getRegionName());
TableSplit split = new TableSplit(tableName, scan,
TableSplit split = new TableSplit(tableName,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, we do not pass the scan object and then we save a bunch of memory? The TableSplit doesn't carry around the heavy scan instance anymore? Is that it? Thanks.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saintstack that is correct! If you see the jira for description, there is a heap dump screenshots which shows the scan object may occupy much memory in case of tables with large number of regions. This patch just fix the TableInputFormat for single table where we don’t use the scan object from TableSplit since we use it from MR Job conf directly. There should be another patch to fix the similar fix with more code changes for MultiTableInputFormat. I will try to fix that in a separate patch.

Copy link
Copy Markdown
Contributor

@saintstack saintstack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. Patch looks good to me but I defer to those who have been following the issue closer than I... Need a +1 from them before merge I'd say.

@bharathv
Copy link
Copy Markdown
Contributor

@saintstack I can sign-off on this change, I have some context on the bug, will take a look.

@saintstack
Copy link
Copy Markdown
Contributor

@bharathv thank you

@sandeepvinayak
Copy link
Copy Markdown
Contributor Author

Created a separate jira https://issues.apache.org/jira/browse/HBASE-25226 for optimizing the memory consumption in MultiTableInputFormat.
@bharathv @saintstack

Copy link
Copy Markdown
Contributor

@bharathv bharathv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Patch seems fine, just a few nits, I think we should consider fixing MultiTableInputFormat..

public TableSplit(TableName tableName, byte[] startRow, byte[] endRow,
final String location) {
final String location, final String encodedRegionName, long length) {
this(tableName, null, startRow, endRow, location, encodedRegionName, length);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need a new constructor? Just pass null wherever it is not needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bharathv I think the separate constructor is more intuitive that it is okay to not have scan object? What do you think?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't we ignore the scan assignment, just using this.scan = "" anyway, instead of the following:

    try {
      this.scan =
        (null == scan) ? "" : TableMapReduceUtil.convertScanToString(scan);
    } catch (IOException e) {
      LOG.warn("Failed to convert Scan to String", e);
    }

I also prefer not to add a new constructor.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iff we make sure the scan is useless here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the separate constructor is more intuitive that it is okay to not have scan object? What do you think?

IMHO more constructors is less readability. In this case we have 8 constructors for TableSplit. If I were to use it, I'd confused unless I see the usages of each of these. Either we should have a fluent interface or fewer constructors is what I think. Subjective of course.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Reidddddd Scan is not useless for all the input formats of map-reduce, it is for the TableInputFormat.
We do need the scan object for MultiTableInputFormat

Comment thread hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableSplit.java Outdated
@Apache-HBase
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 48s branch-1 passed
+1 💚 compile 0m 43s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 45s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 42s branch-1 passed
+1 💚 shadedjars 3m 1s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 47s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 40s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 6s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 3m 3s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 56s the patch passed
+1 💚 compile 0m 41s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 41s the patch passed
+1 💚 compile 0m 45s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 45s the patch passed
+1 💚 checkstyle 1m 34s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 52s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 45s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
+1 💚 javadoc 0m 31s the patch passed with JDK v1.8.0_262
+1 💚 javadoc 0m 40s the patch passed with JDK v1.7.0_272
+1 💚 findbugs 3m 0s the patch passed
_ Other Tests _
-1 ❌ unit 125m 5s hbase-server in the patch failed.
+1 💚 asflicense 0m 36s The patch does not generate ASF License warnings.
167m 47s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/4/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux bb5cb308c89b 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / b30d1d1
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
unit https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/4/artifact/out/patch-unit-hbase-server.txt
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/4/testReport/
Max. process+thread count 4579 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/4/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 18s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 52s branch-1 passed
+1 💚 compile 0m 41s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 47s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 44s branch-1 passed
+1 💚 shadedjars 3m 5s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 50s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 42s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 1s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 2m 59s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 59s the patch passed
+1 💚 compile 0m 38s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 38s the patch passed
+1 💚 compile 0m 44s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 44s the patch passed
+1 💚 checkstyle 1m 31s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 47s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 39s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
+1 💚 javadoc 0m 31s the patch passed with JDK v1.8.0_262
+1 💚 javadoc 0m 39s the patch passed with JDK v1.7.0_272
+1 💚 findbugs 2m 52s the patch passed
_ Other Tests _
-1 ❌ unit 136m 42s hbase-server in the patch failed.
+1 💚 asflicense 0m 33s The patch does not generate ASF License warnings.
178m 59s
Reason Tests
Failed junit tests hadoop.hbase.regionserver.TestSplitTransactionOnCluster
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/5/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 1238045de6ef 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / b30d1d1
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
unit https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/5/artifact/out/patch-unit-hbase-server.txt
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/5/testReport/
Max. process+thread count 4025 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/5/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

public TableSplit(TableName tableName, byte[] startRow, byte[] endRow,
final String location) {
final String location, final String encodedRegionName, long length) {
this(tableName, null, startRow, endRow, location, encodedRegionName, length);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't we ignore the scan assignment, just using this.scan = "" anyway, instead of the following:

    try {
      this.scan =
        (null == scan) ? "" : TableMapReduceUtil.convertScanToString(scan);
    } catch (IOException e) {
      LOG.warn("Failed to convert Scan to String", e);
    }

I also prefer not to add a new constructor.

public TableSplit(TableName tableName, byte[] startRow, byte[] endRow,
final String location) {
final String location, final String encodedRegionName, long length) {
this(tableName, null, startRow, endRow, location, encodedRegionName, length);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iff we make sure the scan is useless here

public TableSplit(TableName tableName, byte[] startRow, byte[] endRow,
final String location) {
final String location, final String encodedRegionName, long length) {
this(tableName, null, startRow, endRow, location, encodedRegionName, length);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the separate constructor is more intuitive that it is okay to not have scan object? What do you think?

IMHO more constructors is less readability. In this case we have 8 constructors for TableSplit. If I were to use it, I'd confused unless I see the usages of each of these. Either we should have a fluent interface or fewer constructors is what I think. Subjective of course.

Copy link
Copy Markdown
Contributor

@bharathv bharathv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few nits but lgtm, lets see what the QA bot says..

private String regionLocation;
private String encodedRegionName = "";

/** The scan object may be null but the serialized form of scan is never null
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: new lines missing

/**
 * .....
 */

@Apache-HBase
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 49s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 10m 7s branch-1 passed
+1 💚 compile 0m 39s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 45s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 44s branch-1 passed
+1 💚 shadedjars 3m 4s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 49s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 42s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 3s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 3m 0s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 53s the patch passed
+1 💚 compile 0m 40s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 40s the patch passed
+1 💚 compile 0m 44s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 44s the patch passed
+1 💚 checkstyle 1m 31s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 51s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 35s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
+1 💚 javadoc 0m 31s the patch passed with JDK v1.8.0_262
+1 💚 javadoc 0m 41s the patch passed with JDK v1.7.0_272
+1 💚 findbugs 2m 50s the patch passed
_ Other Tests _
-1 ❌ unit 123m 31s hbase-server in the patch failed.
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
167m 35s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/6/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux fdf2c3c397d5 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / b30d1d1
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
unit https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/6/artifact/out/patch-unit-hbase-server.txt
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/6/testReport/
Max. process+thread count 4046 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/6/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@sandeepvinayak sandeepvinayak force-pushed the HBASE-24859-branch-1 branch 2 times, most recently from 4514746 to ff34744 Compare October 30, 2020 00:37
@Apache-HBase
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 13s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 42s branch-1 passed
+1 💚 compile 0m 39s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 44s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 44s branch-1 passed
+1 💚 shadedjars 3m 1s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 48s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 41s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 1s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 2m 58s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 56s the patch passed
+1 💚 compile 0m 39s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 39s the patch passed
+1 💚 compile 0m 46s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 46s the patch passed
+1 💚 checkstyle 1m 31s hbase-server: The patch generated 0 new + 44 unchanged - 4 fixed = 44 total (was 48)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 49s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 36s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
+1 💚 javadoc 0m 32s the patch passed with JDK v1.8.0_262
+1 💚 javadoc 0m 40s the patch passed with JDK v1.7.0_272
+1 💚 findbugs 2m 57s the patch passed
_ Other Tests _
+1 💚 unit 122m 51s hbase-server in the patch passed.
+1 💚 asflicense 0m 34s The patch does not generate ASF License warnings.
165m 3s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/7/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux d25d6a5431cc 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / 8813b3b
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/7/testReport/
Max. process+thread count 3878 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/7/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 11s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ branch-1 Compile Tests _
+1 💚 mvninstall 9m 53s branch-1 passed
+1 💚 compile 0m 40s branch-1 passed with JDK v1.8.0_262
+1 💚 compile 0m 44s branch-1 passed with JDK v1.7.0_272
+1 💚 checkstyle 1m 43s branch-1 passed
+1 💚 shadedjars 3m 5s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 48s branch-1 passed with JDK v1.8.0_262
+1 💚 javadoc 0m 41s branch-1 passed with JDK v1.7.0_272
+0 🆗 spotbugs 3m 3s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 3m 1s branch-1 passed
_ Patch Compile Tests _
+1 💚 mvninstall 1m 55s the patch passed
+1 💚 compile 0m 41s the patch passed with JDK v1.8.0_262
+1 💚 javac 0m 41s the patch passed
+1 💚 compile 0m 45s the patch passed with JDK v1.7.0_272
+1 💚 javac 0m 45s the patch passed
+1 💚 checkstyle 1m 30s hbase-server: The patch generated 0 new + 42 unchanged - 6 fixed = 42 total (was 48)
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 shadedjars 2m 51s patch has no errors when building our shaded downstream artifacts.
+1 💚 hadoopcheck 4m 34s Patch does not cause any errors with Hadoop 2.8.5 2.9.2.
+1 💚 javadoc 0m 32s the patch passed with JDK v1.8.0_262
+1 💚 javadoc 0m 42s the patch passed with JDK v1.7.0_272
+1 💚 findbugs 2m 54s the patch passed
_ Other Tests _
+1 💚 unit 121m 51s hbase-server in the patch passed.
+1 💚 asflicense 0m 34s The patch does not generate ASF License warnings.
164m 12s
Subsystem Report/Notes
Docker Client=19.03.13 Server=19.03.13 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/8/artifact/out/Dockerfile
GITHUB PR #2591
JIRA Issue HBASE-24859
Optional Tests dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
uname Linux 7b60796fe67d 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality /home/jenkins/jenkins-home/workspace/Base-PreCommit-GitHub-PR_PR-2591/out/precommit/personality/provided.sh
git revision branch-1 / 8813b3b
Default Java 1.7.0_272
Multi-JDK versions /usr/lib/jvm/zulu-8-amd64:1.8.0_262 /usr/lib/jvm/zulu-7-amd64:1.7.0_272
Test Results https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/8/testReport/
Max. process+thread count 4143 (vs. ulimit of 10000)
modules C: hbase-server U: hbase-server
Console output https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2591/8/console
versions git=1.9.1 maven=3.0.5 findbugs=3.0.1
Powered by Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Copy Markdown
Contributor

@bharathv bharathv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Reidddddd Any more comments on this or is this good to go?

Copy link
Copy Markdown
Contributor

@Reidddddd Reidddddd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@bharathv bharathv merged commit 3238abc into apache:branch-1 Oct 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants