Skip to content

HBASE-25869 WAL value compression - #3244

Merged
apurtell merged 12 commits into
apache:masterfrom
apurtell:HBASE-25869
May 21, 2021
Merged

HBASE-25869 WAL value compression#3244
apurtell merged 12 commits into
apache:masterfrom
apurtell:HBASE-25869

Conversation

@apurtell

@apurtellapurtell commented May 8, 2021

Copy link
Copy Markdown
Contributor

WAL storage can be expensive, especially if the cell values represented in the edits are large, consisting of blobs or significant lengths of text. Such WALs might need to be kept around for a fairly long time to satisfy replication constraints on a space limited (or space-contended) filesystem.

We have a custom dictionary compression scheme for cell metadata that is engaged when WAL compression is enabled in site configuration. This is fine for that application, where we can expect the universe of values and their lengths in the custom dictionaries to be constrained. For arbitrary cell values it is better to use one of the available compression codecs, which are suitable for arbitrary albeit compressible data.

Microbrenchmark Results

Site configuration used:

<!-- retain all WALs -->
<property>
<name>hbase.master.logcleaner.ttl</name>
<value>604800000</value>
</property>
<!-- enable compression -->
<property>
<name>hbase.regionserver.wal.enablecompression</name>
<value>true</value>
</property>
<!-- enable value compression -->
<property>
<name>hbase.regionserver.wal.value.enablecompression</name>
<value>true</value>
</property>
<!-- set value compression algorithm —>
<property>
<name>hbase.regionserver.wal.value.compression.type</name>
<value>snappy</value>
</property>

Loader: IntegrationTestLoadCommonCrawl

Input: s3n://commoncrawl/crawl-data/CC-MAIN-2021-10/segments/1614178347293.1/warc/CC-MAIN-20210224165708-20210224195708-00000.warc.gz

SNAPPY or ZSTD at level 1 are recommended, all other options provided for comparison.

Microbenchmarks are collected with this change.
Statistics are collected over the lifetime of the regionserver and are dumped at end of test at shutdown. Statistics are updated under synchronization but this is done in a way that excludes that overhead from measurement. The normal patch does not contain either the instrumentation or the synchronization point. Nanoseconds are converted to milliseconds for the table.

ModeWALs aggregate sizeWALs aggregate size differenceWAL writer append time (ms avg)
Default5,117,369,553-0.290 (stdev 0.328)
Compression enabled, value compression not enabled5,002,683,600(2.241%)0.372 (stddev 0.336)
Compression enabled, value compression enabled, v1 patch, Deflate (best speed)1,209,947,515(76.4%)12.694 (stddev 8.48)
Compression enabled, value compression enabled, v2 patch, algorithm=SNAPPY1,616,387,702(68.4%)0.027 (stddev 0.204)
Compression enabled, value compression enabled, v2 patch, algorithm=ZSTD (best speed)1,149,008,133(77.55%)0.043 (stddev 0.195)
Compression enabled, value compression enabled, v2 patch, algorithm=ZSTD (default)1,089,241,811(78.7%)0.056 (stdev 0.310)
Compression enabled, value compression enabled, v2 patch, algorithm=ZSTD (best compression)941,452,655(81.2%)0.231 (stddev 1.11)
Options below not recommended.---
Compression enabled, value compression enabled, v2 patch, algorithm=GZ1,082,414,015(78.9%)0.267 (stddev 1.325)
Compression enabled, value compression enabled, v2 patch, algorithm=LZMA (level 1)1,013,951,637(80.2%)2.157 (stddev 3.302)
Compression enabled, value compression enabled, v2 patch, algorithm=LZMA (default)940,884,618(81.7%)4.739 (stdev 8.609)

Comment threadhbase-common/src/main/java/org/apache/hadoop/hbase/KeyValue.java Outdated
@apurtell

Copy link
Copy Markdown
ContributorAuthor

Clean up the commit message.

@apacheapache deleted a comment from Apache-HBaseMay 8, 2021
@apacheapache deleted a comment from Apache-HBaseMay 8, 2021
@apacheapache deleted a comment from Apache-HBaseMay 8, 2021
@apacheapache deleted a comment from Apache-HBaseMay 8, 2021
@apacheapache deleted a comment from Apache-HBaseMay 8, 2021
@apacheapache deleted a comment from Apache-HBaseMay 8, 2021
@apurtell

Copy link
Copy Markdown
ContributorAuthor

I broke trunk on an unrelated issue last night. Rebased. Removed some precommit noise that resulted.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 6sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗prototool0m 0sprototool was not available.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall3m 41smaster passed
+1 💚compile5m 28smaster passed
+1 💚checkstyle1m 40smaster passed
+1 💚spotbugs6m 32smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 37sthe patch passed
+1 💚compile5m 26sthe patch passed
+1 💚cc5m 26sthe patch passed
+1 💚javac5m 26sthe patch passed
+1 💚checkstyle1m 41sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck18m 6sPatch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.
+1 💚hbaseprotoc2m 3sthe patch passed
+1 💚spotbugs7m 6sthe patch passed
_ Other Tests _
+1 💚asflicense0m 37sThe patch does not generate ASF License warnings.
65m 51s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#3244
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc prototool
unameLinux d0077d9c238e 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 8c2332d
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count96 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/3/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 27sDocker mode activated.
-0 ⚠️yetus0m 4sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall4m 30smaster passed
+1 💚compile2m 54smaster passed
+1 💚shadedjars10m 2sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 20smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall4m 25sthe patch passed
+1 💚compile2m 37sthe patch passed
+1 💚javac2m 37sthe patch passed
+1 💚shadedjars8m 9spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 19sthe patch passed
_ Other Tests _
+1 💚unit1m 2shbase-protocol-shaded in the patch passed.
+1 💚unit2m 5shbase-common in the patch passed.
+1 💚unit141m 13shbase-server in the patch passed.
183m 15s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/3/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 95308bf6c357 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 8c2332d
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/3/testReport/
Max. process+thread count3982 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/3/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@apurtell
apurtellforce-pushed the HBASE-25869 branch 2 times, most recently from ca44233 to b8ff445CompareMay 9, 2021 22:45
@apurtellapurtell changed the title [WIP] HBASE-25869 WAL value compressionHBASE-25869 WAL value compressionMay 9, 2021
@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec6m 39sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗prototool0m 0sprototool was not available.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 25sMaven dependency ordering for branch
+1 💚mvninstall3m 52smaster passed
+1 💚compile5m 25smaster passed
+1 💚checkstyle1m 43smaster passed
+1 💚spotbugs6m 31smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 36sthe patch passed
+1 💚compile5m 27sthe patch passed
+1 💚cc5m 27sthe patch passed
+1 💚javac5m 27sthe patch passed
+1 💚checkstyle1m 38sthe patch passed
+1 💚whitespace0m 1sThe patch has no whitespace issues.
+1 💚hadoopcheck18m 13sPatch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.
+1 💚hbaseprotoc2m 0sthe patch passed
+1 💚spotbugs7m 10sthe patch passed
_ Other Tests _
+1 💚asflicense0m 38sThe patch does not generate ASF License warnings.
71m 47s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#3244
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc prototool
unameLinux 526e40bc729d 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 8c2332d
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count96 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/4/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache9

Copy link
Copy Markdown
Contributor

So we will only compress value?

As we will do batching when writing WAL entries out, is it possible to compress when flushing? The data will be larger and compress may perform better. The structure of a WAL file will be multiple compressed blocks.

I think for AsyncFSWAL this is easy as we will buffer all the entries in memory and when flush is called we flush all the in memory data out. For FSHLog it will be a bit hard as we rely on the DFSOutputStream to do flush if the data is too big before we actually call hflush.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 14sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 30sMaven dependency ordering for branch
+1 💚mvninstall3m 36smaster passed
+1 💚compile2m 12smaster passed
+1 💚shadedjars8m 16sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 14smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall3m 43sthe patch passed
+1 💚compile2m 10sthe patch passed
+1 💚javac2m 10sthe patch passed
+1 💚shadedjars8m 10spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 13sthe patch passed
_ Other Tests _
+1 💚unit0m 46shbase-protocol-shaded in the patch passed.
+1 💚unit1m 47shbase-common in the patch passed.
+1 💚unit147m 20shbase-server in the patch passed.
185m 2s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/4/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 10a910d8547a 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 8c2332d
Default JavaAdoptOpenJDK-1.8.0_282-b08
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/4/testReport/
Max. process+thread count4133 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/4/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 0sDocker mode activated.
-1 ❌patch0m 4s#3244 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.
SubsystemReport/Notes
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/5/console
versionsgit=2.17.1
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 3sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗prototool0m 1sprototool was not available.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 26sMaven dependency ordering for branch
+1 💚mvninstall3m 36smaster passed
+1 💚compile5m 19smaster passed
+1 💚checkstyle1m 42smaster passed
+1 💚spotbugs6m 28smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 14sMaven dependency ordering for patch
+1 💚mvninstall3m 34sthe patch passed
+1 💚compile5m 21sthe patch passed
+1 💚cc5m 21sthe patch passed
+1 💚javac5m 21sthe patch passed
+1 💚checkstyle1m 39sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck18m 1sPatch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.
+1 💚hbaseprotoc2m 1sthe patch passed
+1 💚spotbugs7m 13sthe patch passed
_ Other Tests _
+1 💚asflicense0m 37sThe patch does not generate ASF License warnings.
65m 29s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/5/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#3244
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc prototool
unameLinux 735dda148162 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 8c2332d
Default JavaAdoptOpenJDK-1.8.0_282-b08
Max. process+thread count96 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/5/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 29sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 25sMaven dependency ordering for branch
+1 💚mvninstall4m 35smaster passed
+1 💚compile2m 51smaster passed
+1 💚shadedjars8m 59sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 22smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall4m 16sthe patch passed
+1 💚compile2m 40sthe patch passed
+1 💚javac2m 40sthe patch passed
+1 💚shadedjars8m 48spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 25sthe patch passed
_ Other Tests _
+1 💚unit1m 5shbase-protocol-shaded in the patch passed.
+1 💚unit2m 11shbase-common in the patch passed.
+1 💚unit143m 53shbase-server in the patch passed.
185m 27s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 37d932ab31f2 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 8c2332d
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/5/testReport/
Max. process+thread count4058 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/5/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

apurtell commented May 10, 2021

Copy link
Copy Markdown
ContributorAuthor

So we will only compress value?

This is an enhancement to existing WAL compression. As you know the existing WAL compression already compresses other aspects of WAL entries except for the value. This patch adds support for compressing values too.

As we will do batching when writing WAL entries out, is it possible to compress when flushing? The data will be larger and compress may perform better. The structure of a WAL file will be multiple compressed blocks.

This is not possible for two reasons:

  1. WALCellCodec does not compress the WAL file in blocks. The design is edit by edit. I want to introduce value compression without re-engineering the whole WAL format. Perhaps our WAL file format is due for a redesign, but I would like to see that be a different issue.

  2. We flush the compressor at the end of every value to ensure each WALedit record persists all of the value data into the expected place. Otherwise the compressor would put some of the unflushed output of the previous value into the next/current value. But, we are not resetting the compressor. (That would be FULL_FLUSH. We are using SYNC_FLUSH.) By using the same Deflater instance for the whole WAL we already get the benefit you are thinking of. The (re-used) Deflater is able to build its dictionary across the contents of all of the values in the file, not just each value considered in isolation (that was the original patch but I pushed an improvement that aligns with this suggestion later), achieving a better compression.

Way back in the distant past our WAL format was based on Hadoop's SequenceFile, which supported both record-by-record and block based compression, where the blocks would contain multiple records. I don't remember why we moved away from it but I imagine it was because if there are corruptions of the WAL, a record by record codec is able to skip over the corrupt record and we lose only the record (or as many records as are actually corrupt), but with a block format we would lose the whole block and all of the edits contained within that block, especially if compression or encryption is enabled.

@apurtell

apurtell commented May 19, 2021

Copy link
Copy Markdown
ContributorAuthor

@bharathv I wrote a simple bounded delegating input stream impl to avoid the unnecessary copy at decompression time. Rebased on master.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec6m 27sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗prototool0m 0sprototool was not available.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 27sMaven dependency ordering for branch
+1 💚mvninstall4m 7smaster passed
+1 💚compile5m 37smaster passed
+1 💚checkstyle1m 46smaster passed
+1 💚spotbugs6m 54smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall4m 1sthe patch passed
+1 💚compile5m 33sthe patch passed
+1 💚cc5m 33sthe patch passed
-0 ⚠️javac0m 45shbase-common generated 1 new + 158 unchanged - 1 fixed = 159 total (was 159)
+1 💚checkstyle0m 9sThe patch passed checkstyle in hbase-protocol-shaded
-0 ⚠️checkstyle0m 25shbase-common: The patch generated 1 new + 115 unchanged - 0 fixed = 116 total (was 115)
+1 💚checkstyle1m 10shbase-server: The patch generated 0 new + 26 unchanged - 2 fixed = 26 total (was 28)
-0 ⚠️whitespace0m 0sThe patch has 2 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
+1 💚hadoopcheck19m 59sPatch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.
+1 💚hbaseprotoc2m 3sthe patch passed
+1 💚spotbugs7m 32sthe patch passed
_ Other Tests _
+1 💚asflicense0m 31sThe patch does not generate ASF License warnings.
75m 52s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#3244
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc prototool
unameLinux f89c074ca0e6 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / fe47557
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/artifact/yetus-general-check/output/diff-compile-javac-hbase-common.txt
checkstylehttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
whitespacehttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/artifact/yetus-general-check/output/whitespace-eol.txt
Max. process+thread count86 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

apurtell commented May 19, 2021

Copy link
Copy Markdown
ContributorAuthor

I am redoing microbenchmarks with the latest patch and will update here soon. Improvements have unlocked IO performance improvement from the compression.

AlgorithmAvg WAL append in ms - BeforeAvg WAL append in ms - Now
None0.290 (stdev 0.328)unchanged
Compression, but no value compression0.372 (stddev 0.336)unchanged
Compression, value compression=SNAPPY2.971 (stddev 2.029)0.0272 (stddev 0.204)

Before, SNAPPY+copy had a 10x loss, now SNAPPY+no-copy has a 10x gain. I double checked these findings and it seems correct. I will re-run the benchmark when measuring for the other codec types for comparison.

Microbenchmarks are collected with this change.
Statistics are collected over the lifetime of the regionserver and are dumped at end of test at shutdown. Statistics are updated under synchronization but this is done in a way that excludes that overhead from measurement. The normal patch does not contain either the instrumentation or the synchronization point. Nanoseconds are converted to milliseconds for the table.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec3m 53sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 33sMaven dependency ordering for branch
+1 💚mvninstall3m 37smaster passed
+1 💚compile2m 11smaster passed
+1 💚shadedjars8m 6sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 14smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall3m 40sthe patch passed
+1 💚compile2m 12sthe patch passed
+1 💚javac2m 12sthe patch passed
+1 💚shadedjars8m 11spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 13sthe patch passed
_ Other Tests _
+1 💚unit0m 46shbase-protocol-shaded in the patch passed.
+1 💚unit1m 48shbase-common in the patch passed.
+1 💚unit147m 59shbase-server in the patch passed.
188m 29s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux c76a45c06d4f 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / fe47557
Default JavaAdoptOpenJDK-1.8.0_282-b08
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/testReport/
Max. process+thread count3669 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec10m 6sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for branch
+1 💚mvninstall5m 40smaster passed
+1 💚compile3m 6smaster passed
+1 💚shadedjars9m 53sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 30smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall5m 30sthe patch passed
+1 💚compile3m 23sthe patch passed
+1 💚javac3m 23sthe patch passed
+1 💚shadedjars10m 9spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 49sthe patch passed
_ Other Tests _
+1 💚unit1m 16shbase-protocol-shaded in the patch passed.
+1 💚unit2m 29shbase-common in the patch passed.
+1 💚unit226m 58shbase-server in the patch passed.
285m 12s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 110bacffde07 4.15.0-142-generic #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / fe47557
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/testReport/
Max. process+thread count2982 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/15/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

Copy link
Copy Markdown
ContributorAuthor

SNAPPY or ZSTD are recommended, all other options provided for comparison. (LZMA is included as a sanity check that indeed an expensive algorithm really is expensive.)

When using SNAPPY or ZSTD we derive a performance benefit due to reduced IO for the large values in the test case.

Microbenchmarks are collected with this change.
Statistics are collected over the lifetime of the regionserver and are dumped at end of test at shutdown. Statistics are updated under synchronization but this is done in a way that excludes that overhead from measurement. The normal patch does not contain either the instrumentation or the synchronization point. Nanoseconds are converted to milliseconds for the table.

ModeWALs aggregate sizeWALs aggregate size differenceWAL writer append time (ms avg)
Default5,117,369,553-0.290 (stdev 0.328)
Compression enabled, value compression not enabled5,002,683,600(2.241%)0.372 (stddev 0.336)
Compression enabled, value compression enabled, v1 patch, Deflate (best speed)1,209,947,515(76.4%)12.694 (stddev 8.48)
Compression enabled, value compression enabled, v2 patch, algorithm=SNAPPY1,616,387,702(68.4%)0.027 (stddev 0.204)
Compression enabled, value compression enabled, v2 patch, algorithm=ZSTD (best speed)1,149,008,133(77.55%)0.043 (stddev 0.195)
Compression enabled, value compression enabled, v2 patch, algorithm=ZSTD (default)1,089,241,811(78.7%)0.056 (stdev 0.310)
Compression enabled, value compression enabled, v2 patch, algorithm=ZSTD (best compression)941,452,655(81.2%)0.231 (stddev 1.11)
Options below not recommended.---
Compression enabled, value compression enabled, v2 patch, algorithm=GZ1,082,414,015(78.9%)0.267 (stddev 1.325)
Compression enabled, value compression enabled, v2 patch, algorithm=LZMA (level 1)1,013,951,637(80.2%)2.157 (stddev 3.302)
Compression enabled, value compression enabled, v2 patch, algorithm=LZMA (default)940,884,618(81.7%)4.739 (stdev 8.609)

@bharathv

bharathv commented May 20, 2021

Copy link
Copy Markdown
Contributor

SNAPPY+copy had a 10x loss, now SNAPPY+no-copy has a 10x gain. I double checked these findings and it seems correct. I will re-run the benchmark when measuring for the other codec types for comparison.

Holy guacamole! Is this because of the reduced disk IO with compressed values? I'm glad we regained all the lost performance by eliding the copy.

Edit: Just saw your last comment "When using SNAPPY or ZSTD we derive a performance benefit due to reduced IO for the large values in the test case." Sweeeeet!

@bharathvbharathv left a comment

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.

+1 with one pending suggestion and green QA.

* is finished.
*/
@InterfaceAudience.Private
public class BoundedDelegatingInputStream extends DelegatingInputStream {

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.

We can merge this and DelegatingInputStream? Don't think we need both of them separately.

public class BoundedDelegatingInputStream extends FilterInputStream {
.... < bounding methods>...
setDelegate() {}
}

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I thought we could keep them both.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 6sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗prototool0m 0sprototool was not available.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 23sMaven dependency ordering for branch
+1 💚mvninstall4m 1smaster passed
+1 💚compile5m 43smaster passed
+1 💚checkstyle1m 46smaster passed
+1 💚spotbugs6m 39smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall4m 0sthe patch passed
+1 💚compile5m 36sthe patch passed
+1 💚cc5m 36sthe patch passed
-0 ⚠️javac0m 47shbase-common generated 1 new + 158 unchanged - 1 fixed = 159 total (was 159)
+1 💚checkstyle0m 8sThe patch passed checkstyle in hbase-protocol-shaded
-0 ⚠️checkstyle0m 26shbase-common: The patch generated 1 new + 115 unchanged - 0 fixed = 116 total (was 115)
+1 💚checkstyle1m 8shbase-server: The patch generated 0 new + 26 unchanged - 2 fixed = 26 total (was 28)
-0 ⚠️whitespace0m 0sThe patch has 2 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
+1 💚hadoopcheck20m 38sPatch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.
+1 💚hbaseprotoc2m 8sthe patch passed
+1 💚spotbugs7m 44sthe patch passed
_ Other Tests _
+1 💚asflicense0m 32sThe patch does not generate ASF License warnings.
71m 14s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#3244
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc prototool
unameLinux bace79313f46 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / fe47557
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-general-check/output/diff-compile-javac-hbase-common.txt
checkstylehttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-general-check/output/diff-checkstyle-hbase-common.txt
whitespacehttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-general-check/output/whitespace-eol.txt
Max. process+thread count86 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec3m 55sDocker mode activated.
-0 ⚠️yetus0m 4sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 29sMaven dependency ordering for branch
+1 💚mvninstall4m 14smaster passed
+1 💚compile2m 38smaster passed
+1 💚shadedjars8m 7sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 18smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall4m 14sthe patch passed
+1 💚compile2m 39sthe patch passed
+1 💚javac2m 39sthe patch passed
+1 💚shadedjars8m 6spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 19sthe patch passed
_ Other Tests _
+1 💚unit1m 0shbase-protocol-shaded in the patch passed.
+1 💚unit2m 6shbase-common in the patch passed.
+1 💚unit142m 29shbase-server in the patch passed.
185m 30s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux b02b5d6634e6 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / fe47557
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/testReport/
Max. process+thread count3872 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 28sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 27sMaven dependency ordering for branch
+1 💚mvninstall3m 40smaster passed
+1 💚compile2m 12smaster passed
+1 💚shadedjars8m 8sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 14smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall3m 38sthe patch passed
+1 💚compile2m 10sthe patch passed
+1 💚javac2m 10sthe patch passed
+1 💚shadedjars8m 9spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 12sthe patch passed
_ Other Tests _
+1 💚unit0m 47shbase-protocol-shaded in the patch passed.
+1 💚unit1m 48shbase-common in the patch passed.
-1 ❌unit159m 26shbase-server in the patch failed.
196m 8s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 33ea6bbd4f8c 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 toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / fe47557
Default JavaAdoptOpenJDK-1.8.0_282-b08
unithttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/testReport/
Max. process+thread count3627 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/16/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

Copy link
Copy Markdown
ContributorAuthor

Unit test failures are not related. It looks like master is recently unstable, related to RS groups.

@ndimiduk

Copy link
Copy Markdown
Member

Unit test failures are not related. It looks like master is recently unstable, related to RS groups.

That failure looks suspicious. Let me grab the logs before you merge/close the PR.

@ndimiduk

Copy link
Copy Markdown
Member

I have what's available.

@apurtell

Copy link
Copy Markdown
ContributorAuthor

@ndimiduk

That failure looks suspicious. Let me grab the logs before you merge/close the PR.

How can it be related? That test neither enables WAL compression nor WAL value compression.

org.junit.runners.model.TestTimedOutException: test timed out after 780 seconds
at org.apache.hadoop.hbase.master.TestMergeTableRegionsWhileRSCrash.test(TestMergeTableRegionsWhileRSCrash.java:112)

Test log is full of:

java.net.ConnectException: Call to address=33ea6bbd4f8c:42363 null failed on connection exception:
org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel$AnnotatedConnectException:
finishConnect(..) failed: Connection refused: 33ea6bbd4f8c/172.17.0.2:42363

Passes on my dev branch:

[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.hadoop.hbase.master.TestMergeTableRegionsWhileRSCrash
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 38.5 s - in org.apache.hadoop.hbase.master.TestMergeTableRegionsWhileRSCrash
[INFO] [INFO] Results:
[INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

@apurtell

Copy link
Copy Markdown
ContributorAuthor

Pushed a fix for whitespace and javadoc issues introduced in last change. No additional changes anticipated from this point.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 35sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗prototool0m 0sprototool was not available.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 29sMaven dependency ordering for branch
+1 💚mvninstall4m 16smaster passed
+1 💚compile5m 29smaster passed
+1 💚checkstyle1m 41smaster passed
+1 💚spotbugs6m 34smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall3m 38sthe patch passed
+1 💚compile5m 22sthe patch passed
+1 💚cc5m 22sthe patch passed
-0 ⚠️javac0m 48shbase-common generated 1 new + 158 unchanged - 1 fixed = 159 total (was 159)
+1 💚checkstyle0m 11sThe patch passed checkstyle in hbase-protocol-shaded
+1 💚checkstyle0m 27sThe patch passed checkstyle in hbase-common
+1 💚checkstyle1m 2shbase-server: The patch generated 0 new + 26 unchanged - 2 fixed = 26 total (was 28)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck18m 25sPatch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.
+1 💚hbaseprotoc2m 2sthe patch passed
+1 💚spotbugs7m 4sthe patch passed
_ Other Tests _
+1 💚asflicense0m 37sThe patch does not generate ASF License warnings.
66m 39s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#3244
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile cc hbaseprotoc prototool
unameLinux 89c6f8671b31 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 7c24ed4
Default JavaAdoptOpenJDK-1.8.0_282-b08
javachttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/artifact/yetus-general-check/output/diff-compile-javac-hbase-common.txt
Max. process+thread count96 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/console
versionsgit=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@ndimiduk

Copy link
Copy Markdown
Member

@ndimiduk

That failure looks suspicious. Let me grab the logs before you merge/close the PR.

How can it be related? That test neither enables WAL compression nor WAL value compression.

Parton Andrew. I did not mean for "suspicious" to imply "caused by this changeset," merely that I was interested in looking at it further. All the PR build artifacts are purged from Jenkins after the PR is closed.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec4m 55sDocker mode activated.
-0 ⚠️yetus0m 4sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 35sMaven dependency ordering for branch
+1 💚mvninstall4m 38smaster passed
+1 💚compile2m 50smaster passed
+1 💚shadedjars8m 40sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 27smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall4m 26sthe patch passed
+1 💚compile2m 53sthe patch passed
+1 💚javac2m 53sthe patch passed
+1 💚shadedjars8m 49spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 23sthe patch passed
_ Other Tests _
+1 💚unit1m 5shbase-protocol-shaded in the patch passed.
+1 💚unit2m 8shbase-common in the patch passed.
+1 💚unit140m 14shbase-server in the patch passed.
187m 10s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 2c288e42a37a 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 7c24ed4
Default JavaAdoptOpenJDK-11.0.10+9
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/testReport/
Max. process+thread count3858 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec1m 16sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 29sMaven dependency ordering for branch
+1 💚mvninstall4m 9smaster passed
+1 💚compile2m 15smaster passed
+1 💚shadedjars9m 31sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 22smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall4m 23sthe patch passed
+1 💚compile2m 14sthe patch passed
+1 💚javac2m 14sthe patch passed
+1 💚shadedjars9m 2spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc1m 24sthe patch passed
_ Other Tests _
+1 💚unit0m 54shbase-protocol-shaded in the patch passed.
+1 💚unit2m 17shbase-common in the patch passed.
+1 💚unit225m 19shbase-server in the patch passed.
267m 14s
SubsystemReport/Notes
DockerClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#3244
Optional Testsjavac javadoc unit shadedjars compile
unameLinux bf3385fe68e2 4.15.0-142-generic #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 7c24ed4
Default JavaAdoptOpenJDK-1.8.0_282-b08
Test Resultshttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/testReport/
Max. process+thread count2571 (vs. ulimit of 30000)
modulesC: hbase-protocol-shaded hbase-common hbase-server U: .
Console outputhttps://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3244/17/console
versionsgit=2.17.1 maven=3.6.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

Copy link
Copy Markdown
ContributorAuthor

Thanks. Unless objection I will merge this tonight or tomorrow morning, to master, and then to branch-2 (for future 2.5.0)

@apurtell
apurtell merged commit 8ec6fd9 into apache:masterMay 21, 2021
@apurtell
apurtell deleted the HBASE-25869 branch May 21, 2021 18:05
asfgit pushed a commit that referenced this pull request May 21, 2021
WAL storage can be expensive, especially if the cell values
represented in the edits are large, consisting of blobs or
significant lengths of text. Such WALs might need to be kept around
for a fairly long time to satisfy replication constraints on a space
limited (or space-contended) filesystem.
We have a custom dictionary compression scheme for cell metadata that
is engaged when WAL compression is enabled in site configuration.
This is fine for that application, where we can expect the universe
of values and their lengths in the custom dictionaries to be
constrained. For arbitrary cell values it is better to use one of the
available compression codecs, which are suitable for arbitrary albeit
compressible data.
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Sign up for freeto 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.

6 participants

@apurtell@Apache-HBase@Apache9@ndimiduk@shahrs87@bharathv