Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBASE-28900: Avoid resetting the bucket cache during recovery from persistence. #6360

Merged
merged 1 commit into from
Oct 14, 2024

Conversation

jhungund
Copy link
Contributor

@jhungund jhungund commented Oct 9, 2024

When an inconsistency is detected during the recovery of bucket cache from persistence, we tend to throw away the complete cache and try to rebuild the cache. Thsi inconsistency can occur when the region server is abruptly terminated.

This can be avoided by skipping the inconsistent backing map entry and continuing with the cache recovery. The inconsistent backing map entry will be discarded during the subsequent bucket cache validation.

Change-Id: I41237bda2189cbd73e22e4eadf4d53d16a3733f6

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

"Couldn't find match for index " + idx + " in free list");
if (!matchFound) {
LOG.warn("We found more entries for bucket than the bucket capacity. "
+ "Skipping entry at cache offset {}", offset);
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: let's add more info about the bucket. Something like:

LOG.warn("We found more entries for bucket starting at offset {} for blocks of {} size. "
+ "Skipping entry at cache offset {}", baseOffset, itemAllocationSize, offset);

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ack!

…rsistence.

When an inconsistency is detected during the recovery of bucket cache from persistence,
we tend to throw away the complete cache and try to rebuild the cache.
Thsi inconsistency can occur when the region server is abruptly terminated.

This can be avoided by skipping the inconsistent backing map entry and continuing with
the cache recovery. The inconsistent backing map entry will be discarded during the subsequent
bucket cache validation.

Change-Id: I41237bda2189cbd73e22e4eadf4d53d16a3733f6
@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 4m 3s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
_ master Compile Tests _
+1 💚 mvninstall 2m 59s master passed
+1 💚 compile 2m 58s master passed
+1 💚 checkstyle 0m 38s master passed
+1 💚 spotbugs 1m 33s master passed
+1 💚 spotless 0m 44s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+1 💚 mvninstall 2m 55s the patch passed
+1 💚 compile 2m 59s the patch passed
+1 💚 javac 2m 59s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 0m 38s hbase-server: The patch generated 0 new + 25 unchanged - 1 fixed = 25 total (was 26)
+1 💚 spotbugs 1m 40s the patch passed
+1 💚 hadoopcheck 10m 34s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚 spotless 0m 43s patch has no errors when running spotless:check.
_ Other Tests _
+1 💚 asflicense 0m 10s The patch does not generate ASF License warnings.
39m 9s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6360/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #6360
JIRA Issue HBASE-28900
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
uname Linux e548135ed439 5.4.0-195-generic #215-Ubuntu SMP Fri Aug 2 18:28:05 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / c39455e
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 84 (vs. ulimit of 30000)
modules C: hbase-server U: hbase-server
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6360/4/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 28s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 3m 27s master passed
+1 💚 compile 0m 55s master passed
+1 💚 javadoc 0m 28s master passed
+1 💚 shadedjars 5m 40s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 2m 57s the patch passed
+1 💚 compile 0m 55s the patch passed
+1 💚 javac 0m 56s the patch passed
-0 ⚠️ javadoc 0m 26s /results-javadoc-javadoc-hbase-server.txt hbase-server generated 7 new + 48 unchanged - 0 fixed = 55 total (was 48)
+1 💚 shadedjars 5m 34s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 213m 45s hbase-server in the patch passed.
238m 33s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6360/4/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #6360
JIRA Issue HBASE-28900
Optional Tests javac javadoc unit compile shadedjars
uname Linux 49ef70866917 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / c39455e
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6360/4/testReport/
Max. process+thread count 5562 (vs. ulimit of 30000)
modules C: hbase-server U: hbase-server
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6360/4/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@wchevreuil wchevreuil merged commit cac58ba into apache:master Oct 14, 2024
1 check passed
wchevreuil pushed a commit that referenced this pull request Oct 14, 2024
…rsistence. (#6360)

Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
jhungund added a commit to jhungund/hbase that referenced this pull request Oct 14, 2024
…rsistence. (apache#6360)

Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
jhungund added a commit to jhungund/hbase that referenced this pull request Oct 15, 2024
…rsistence. (apache#6360)

Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
Change-Id: If7e7a76723cf7d2d6e8c9e2ce0aeccfdba81c0bb
wchevreuil pushed a commit that referenced this pull request Oct 15, 2024
…rsistence. (#6360) (#6365)

Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
wchevreuil pushed a commit that referenced this pull request Oct 15, 2024
…rsistence. (#6360) (#6365)

Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
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.

3 participants