Skip to content

HBASE-27686: Recovery of BucketCache and Prefetched data after RS Crash - #5080

Merged
wchevreuil merged 1 commit into
apache:masterfrom
Kota-SH:hbase-27686
Mar 16, 2023
Merged

HBASE-27686: Recovery of BucketCache and Prefetched data after RS Crash#5080
wchevreuil merged 1 commit into
apache:masterfrom
Kota-SH:hbase-27686

Conversation

@Kota-SH

Copy link
Copy Markdown
Contributor

@Kota-SH
Kota-SH marked this pull request as draft March 3, 2023 17:55
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 23sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+1 💚mvninstall3m 54smaster passed
+1 💚compile2m 39smaster passed
+1 💚checkstyle0m 36smaster passed
+1 💚spotless0m 45sbranch has no errors when running spotless:check.
+1 💚spotbugs1m 31smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 35sthe patch passed
+1 💚compile2m 28sthe patch passed
+1 💚javac2m 28sthe patch passed
-0 ⚠️checkstyle0m 36shbase-server: The patch generated 7 new + 5 unchanged - 0 fixed = 12 total (was 5)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck13m 55sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
-1 ❌spotless0m 19spatch has 56 errors when running spotless:check, run spotless:apply to fix.
-1 ❌spotbugs1m 39shbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
-1 ❌asflicense0m 10sThe patch generated 2 ASF License warnings.
41m 0s
ReasonTests
FindBugsmodule:hbase-server
new org.apache.hadoop.hbase.io.hfile.bucket.BucketCache(String, long, int, int[], int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:[line 319]
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 79aae406105a 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-general-check/output/patch-spotless.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
asflicensehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-general-check/output/patch-asflicense-problems.txt
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.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 33sDocker mode activated.
-0 ⚠️yetus0m 13sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚mvninstall3m 11smaster passed
+1 💚compile0m 35smaster passed
+1 💚shadedjars4m 37sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 23smaster passed
_ Patch Compile Tests _
+1 💚mvninstall2m 43sthe patch passed
+1 💚compile0m 34sthe patch passed
+1 💚javac0m 34sthe patch passed
-1 ❌shadedjars3m 27spatch has 10 errors when building our shaded downstream artifacts.
+1 💚javadoc0m 21sthe patch passed
_ Other Tests _
+1 💚unit213m 57shbase-server in the patch passed.
234m 51s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux f2509582412b 5.4.0-1093-aws #102~18.04.2-Ubuntu SMP Wed Dec 7 00:31:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / d2b0074
Default JavaTemurin-1.8.0_352-b08
shadedjarshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/artifact/yetus-jdk8-hadoop3-check/output/patch-shadedjars.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/testReport/
Max. process+thread count2631 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

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

I think this is a great, yet simple solution for the persistent cache map. We could also solve the problem of evicted blocks by setting cacheDirty to true after we remove cache keys from the map here.

Comment on lines +475 to +477
if (ioEngine.isPersistent()){
setCacheDirty(true);
}

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.

At this point we are not guaranteed to have added the block, as it's just sent to the writer threads. We should be doing this here instead.

private final BucketCacheStats cacheStats = new BucketCacheStats();

private final String persistencePath;
boolean isCacheDirty;

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.

Use AtomicBoolean?

this.backingMap = new ConcurrentHashMap<>((int) blockNumCapacity);

if (ioEngine.isPersistent() && persistencePath != null) {
BucketCachePersister cachePersister = new BucketCachePersister(this, 1000);

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.

Make this interval configurable. Maybe worth decreasing this default.

Thread.sleep(1000);
}
// Kill the RS
cluster.killRegionServer(cluster.getRegionServer(0).getServerName());

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 had noticed that even when using this killRegionServer, we still go through the normal shutdown path for block cache, so we can't really rely on this. But since the main logic we want to test is that updates happen while the RS is running, we could check for the file existence without killing the RS. Also, can we validate the contents of the persisted file? At this point, I think we should certify that all the cache entries are there.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 25sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+1 💚mvninstall3m 24smaster passed
+1 💚compile2m 25smaster passed
+1 💚checkstyle0m 33smaster passed
+1 💚spotless0m 38sbranch has no errors when running spotless:check.
+1 💚spotbugs1m 21smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 19sthe patch passed
+1 💚compile2m 20sthe patch passed
+1 💚javac2m 20sthe patch passed
-0 ⚠️checkstyle0m 33shbase-server: The patch generated 11 new + 5 unchanged - 0 fixed = 16 total (was 5)
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 49sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
-1 ❌spotless0m 18spatch has 30 errors when running spotless:check, run spotless:apply to fix.
-1 ❌spotbugs1m 31shbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚asflicense0m 8sThe patch does not generate ASF License warnings.
37m 27s
ReasonTests
FindBugsmodule:hbase-server
new org.apache.hadoop.hbase.io.hfile.bucket.BucketCache(String, long, int, int[], int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:[line 323]
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 49b1abc97bff 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c2b64e7
Default JavaEclipse Adoptium-11.0.17+8
checkstylehttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
spotlesshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-general-check/output/patch-spotless.txt
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.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 4sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚mvninstall3m 31smaster passed
+1 💚compile0m 38smaster passed
+1 💚shadedjars4m 46sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 22smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 2sthe patch passed
+1 💚compile0m 38sthe patch passed
+1 💚javac0m 38sthe patch passed
+1 💚shadedjars4m 42spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 23sthe patch passed
_ Other Tests _
+1 💚unit212m 29shbase-server in the patch passed.
234m 56s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux fbc9596464db 5.4.0-1093-aws #102~18.04.2-Ubuntu SMP Wed Dec 7 00:31:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c2b64e7
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/testReport/
Max. process+thread count2644 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/console
versionsgit=2.34.1 maven=3.8.6
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 23sDocker 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 _
+1 💚mvninstall3m 42smaster passed
+1 💚compile0m 42smaster passed
+1 💚shadedjars4m 35sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 23smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 18sthe patch passed
+1 💚compile0m 42sthe patch passed
+1 💚javac0m 42sthe patch passed
+1 💚shadedjars4m 35spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 22sthe patch passed
_ Other Tests _
-1 ❌unit220m 56shbase-server in the patch failed.
243m 39s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 88a1a2904d30 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c2b64e7
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/testReport/
Max. process+thread count2703 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/2/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Kota-SH
Kota-SH marked this pull request as ready for review March 14, 2023 17:11
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 28sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+1 💚mvninstall4m 52smaster passed
+1 💚compile3m 0smaster passed
+1 💚checkstyle0m 42smaster passed
+1 💚spotless0m 53sbranch has no errors when running spotless:check.
+1 💚spotbugs1m 51smaster passed
_ Patch Compile Tests _
+1 💚mvninstall4m 18sthe patch passed
+1 💚compile2m 52sthe patch passed
+1 💚javac2m 52sthe patch passed
+1 💚checkstyle0m 38sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck16m 13sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 48spatch has no errors when running spotless:check.
-1 ❌spotbugs1m 59shbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚asflicense0m 11sThe patch does not generate ASF License warnings.
48m 27s
ReasonTests
FindBugsmodule:hbase-server
new org.apache.hadoop.hbase.io.hfile.bucket.BucketCache(String, long, int, int[], int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:[line 324]
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 41b018ef9331 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c2b64e7
Default JavaEclipse Adoptium-11.0.17+8
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.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 24sDocker 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 _
+1 💚mvninstall3m 6smaster passed
+1 💚compile0m 35smaster passed
+1 💚shadedjars4m 34sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 23smaster passed
_ Patch Compile Tests _
+1 💚mvninstall2m 45sthe patch passed
+1 💚compile0m 36sthe patch passed
+1 💚javac0m 35sthe patch passed
+1 💚shadedjars4m 35spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 21sthe patch passed
_ Other Tests _
+1 💚unit211m 8shbase-server in the patch passed.
232m 24s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 40572406c466 5.4.0-1093-aws #102~18.04.2-Ubuntu SMP Wed Dec 7 00:31:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c2b64e7
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/testReport/
Max. process+thread count2440 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/console
versionsgit=2.34.1 maven=3.8.6
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 15sDocker 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 _
+1 💚mvninstall3m 32smaster passed
+1 💚compile0m 50smaster passed
+1 💚shadedjars4m 26sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 26smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 20sthe patch passed
+1 💚compile0m 46sthe patch passed
+1 💚javac0m 46sthe patch passed
+1 💚shadedjars4m 22spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 24sthe patch passed
_ Other Tests _
-1 ❌unit214m 27shbase-server in the patch failed.
237m 9s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux caa10e2a0098 5.4.0-144-generic #161-Ubuntu SMP Fri Feb 3 14:49:04 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c2b64e7
Default JavaEclipse Adoptium-11.0.17+8
unithttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/testReport/
Max. process+thread count2597 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/3/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

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

I think we are almost there, just some minor comments on the tests.

prefetchPersistencePath = testDir + "/prefetch.persistence";
conf.set(CacheConfig.PREFETCH_PERSISTENCE_PATH_KEY, prefetchPersistencePath);
FileSystem fs = HFileSystem.get(conf);
long BUCKETCACHE_PERSIST_INTERVAL = 3000;

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 we decrease this interval to a sub-second value and make this test more expedite?

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.

So writeStoreFile() and readStoreFile() methods take at least 2400 millis. So I used a value higher than that.

prefetchPersistencePath = testDir + "/prefetch.persistence";
conf.set(CacheConfig.PREFETCH_PERSISTENCE_PATH_KEY, prefetchPersistencePath);
FileSystem fs = HFileSystem.get(conf);
long BUCKETCACHE_PERSIST_INTERVAL = 3000;

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.

Let's use camel case for local variable naming.

Path storeFile2 = writeStoreFile("TestPrefetch1", conf, cacheConf, fs);
readStoreFile(storeFile, 0, fs, cacheConf, conf, bucketCache);
readStoreFile(storeFile2, 0, fs, cacheConf, conf, bucketCache);
Thread.sleep(BUCKETCACHE_PERSIST_INTERVAL - startTime + System.currentTimeMillis() + 100);

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 readStoreFile makes sure to only return once prefetch is complete. Do we still this extra (- startTime + System.currentTimeMillis()), plus the 100 milis to pass this test?

final int writerQLen = BucketCache.DEFAULT_WRITER_QUEUE_ITEMS;

@Test
public void testPrefetchPersistenceCrash() throws Exception {

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.

The two test methods are almost identical. Can we do some code reuse with some lambdas for the different pre-conditions/predicates?

@wchevreuil

Copy link
Copy Markdown
Contributor

Lets also update the flag for evictions. That way, we would sort the need for update on evictions as well.

@Kota-SH
Kota-SHforce-pushed the hbase-27686 branch 2 times, most recently from e252244 to 52b230bCompareMarch 15, 2023 17:47
@Kota-SH
Kota-SH requested a review from wchevreuilMarch 15, 2023 17:47
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 23sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+1 💚mvninstall3m 25smaster passed
+1 💚compile2m 22smaster passed
+1 💚checkstyle0m 33smaster passed
+1 💚spotless0m 39sbranch has no errors when running spotless:check.
+1 💚spotbugs1m 25smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 21sthe patch passed
+1 💚compile2m 20sthe patch passed
+1 💚javac2m 20sthe patch passed
+1 💚checkstyle0m 33sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck12m 55sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 38spatch has no errors when running spotless:check.
-1 ❌spotbugs1m 32shbase-server generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
_ Other Tests _
+1 💚asflicense0m 7sThe patch does not generate ASF License warnings.
38m 7s
ReasonTests
FindBugsmodule:hbase-server
new org.apache.hadoop.hbase.io.hfile.bucket.BucketCache(String, long, int, int[], int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:int, int, String, int, Configuration) invokes org.apache.hadoop.hbase.io.hfile.bucket.BucketCachePersister.start() At BucketCache.java:[line 324]
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux f224c54fce3b 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 1f2e1f5
Default JavaEclipse Adoptium-11.0.17+8
spotbugshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/artifact/yetus-general-check/output/new-spotbugs-hbase-server.html
Max. process+thread count85 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

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

Almost there, just a few more nits and fix spotbugs warnings.

cache.setCacheInconsistent(false);
}
} catch (IOException | InterruptedException e) {
LOG.info("Exception in BucketCachePersister" + e.getMessage());

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: should be a WARN.

private static final Logger LOG = LoggerFactory.getLogger(BucketCachePersister.class);

public BucketCachePersister(BucketCache cache, long intervalMillis) {
this.cache = cache;

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: Let's set a meaningful thread name for this one.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 19sDocker 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 _
+1 💚mvninstall3m 32smaster passed
+1 💚compile0m 46smaster passed
+1 💚shadedjars4m 24sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 26smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 20sthe patch passed
+1 💚compile0m 47sthe patch passed
+1 💚javac0m 47sthe patch passed
+1 💚shadedjars4m 27spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 24sthe patch passed
_ Other Tests _
+1 💚unit210m 4shbase-server in the patch passed.
233m 9s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux b665276882ef 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 1f2e1f5
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/testReport/
Max. process+thread count2696 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/console
versionsgit=2.34.1 maven=3.8.6
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 23sDocker 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 _
+1 💚mvninstall3m 19smaster passed
+1 💚compile0m 39smaster passed
+1 💚shadedjars4m 45sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 25smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 6sthe patch passed
+1 💚compile0m 39sthe patch passed
+1 💚javac0m 39sthe patch passed
+1 💚shadedjars4m 43spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 24sthe patch passed
_ Other Tests _
+1 💚unit219m 36shbase-server in the patch passed.
242m 12s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 57ce2c5b9577 5.4.0-1093-aws #102~18.04.2-Ubuntu SMP Wed Dec 7 00:31:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 1f2e1f5
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/testReport/
Max. process+thread count2655 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/4/console
versionsgit=2.34.1 maven=3.8.6
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 23sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+1 💚mvninstall3m 22smaster passed
+1 💚compile2m 23smaster passed
+1 💚checkstyle0m 34smaster passed
+1 💚spotless0m 40sbranch has no errors when running spotless:check.
+1 💚spotbugs1m 25smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 23sthe patch passed
+1 💚compile2m 24sthe patch passed
+1 💚javac2m 24sthe patch passed
+1 💚checkstyle0m 33sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck13m 10sPatch does not cause any errors with Hadoop 3.2.4 3.3.4.
+1 💚spotless0m 40spatch has no errors when running spotless:check.
+1 💚spotbugs1m 32sthe patch passed
_ Other Tests _
+1 💚asflicense0m 8sThe patch does not generate ASF License warnings.
38m 29s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 534a5bb44a1f 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / b0cfd74
Default JavaEclipse Adoptium-11.0.17+8
Max. process+thread count83 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.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 🆗reexec2m 8sDocker 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 _
+1 💚mvninstall3m 37smaster passed
+1 💚compile0m 42smaster passed
+1 💚shadedjars4m 37sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 23smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 18sthe patch passed
+1 💚compile0m 42sthe patch passed
+1 💚javac0m 42sthe patch passed
+1 💚shadedjars4m 35spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 21sthe patch passed
_ Other Tests _
+1 💚unit202m 44shbase-server in the patch passed.
227m 2s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux c24571e69dec 5.4.0-1094-aws #102~18.04.1-Ubuntu SMP Tue Jan 10 21:07:03 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / b0cfd74
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/testReport/
Max. process+thread count2469 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/console
versionsgit=2.34.1 maven=3.8.6
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 🆗reexec2m 33sDocker 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 _
+1 💚mvninstall3m 32smaster passed
+1 💚compile0m 43smaster passed
+1 💚shadedjars4m 51sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 25smaster passed
_ Patch Compile Tests _
+1 💚mvninstall3m 1sthe patch passed
+1 💚compile0m 38sthe patch passed
+1 💚javac0m 38sthe patch passed
+1 💚shadedjars4m 46spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 23sthe patch passed
_ Other Tests _
+1 💚unit214m 10shbase-server in the patch passed.
239m 11s
SubsystemReport/Notes
DockerClientAPI=1.42 ServerAPI=1.42 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5080
JIRA IssueHBASE-27686
Optional Testsjavac javadoc unit shadedjars compile
unameLinux a0600e238c25 5.4.0-1093-aws #102~18.04.2-Ubuntu SMP Wed Dec 7 00:31:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / b0cfd74
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/testReport/
Max. process+thread count2669 (vs. ulimit of 30000)
modulesC: hbase-server U: hbase-server
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/5/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@wchevreuil
wchevreuil merged commit 58cb1f4 into apache:masterMar 16, 2023
wchevreuil pushed a commit that referenced this pull request Mar 16, 2023
…sh (#5080)
Signed-off-by: Wellington Ramos Chevreuil <wchevreuil@apache.org>
(cherry picked from commit 58cb1f4)
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 0sDocker mode activated.
-1 ❌patch0m 3s#5080 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.
SubsystemReport/Notes
GITHUB PR#5080
JIRA IssueHBASE-27686
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/6/console
versionsgit=2.25.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 🆗reexec0m 0sDocker mode activated.
-1 ❌patch0m 3s#5080 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.
SubsystemReport/Notes
GITHUB PR#5080
JIRA IssueHBASE-27686
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/6/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 🆗reexec0m 0sDocker mode activated.
-1 ❌patch0m 2s#5080 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.
SubsystemReport/Notes
GITHUB PR#5080
JIRA IssueHBASE-27686
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5080/6/console
versionsgit=2.25.1
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

vinayakphegde pushed a commit to vinayakphegde/hbase that referenced this pull request Apr 4, 2024
…tched data after RS Crash (apache#5080)
Signed-off-by: Wellington Ramos Chevreuil <wchevreuil@apache.org>
(cherry picked from commit 58cb1f4)
Change-Id: I0d446b51f16f11d91ab8a6619ce5b01f8de7da91
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.

4 participants

@Kota-SH@Apache-HBase@wchevreuil@shankot