Skip to content

Conversation

@jhungund
Copy link
Contributor

During the persistence of bucket-cache backing map to a file, the backing map is divided into multiple smaller chunks and persisted to the file. This chunking avoids the high memory utilisation of during persistence, since only a small subset of backing map entries need to persisted in one chunk.

However, during the retrieval of the backing map during the server startup, we accumulate all these chunks into a list and then process each chunk to recreate the in-memory backing map. Since, all the chunks are fetched from the persistence file and then processed, the memory requirement is higher.

With this change, the retrieval of bucket-cache from persistence file is optimised to enable the processing of one chunk at a time to avoid high memory utilisation.

Change-Id: I12ed252d543be120183cbe5a3e769e5cda7998c1

…ersistence.

During the persistence of bucket-cache backing map to a file, the backing map
is divided into multiple smaller chunks and persisted to the file. This chunking
avoids the high memory utilisation of during persistence, since only a small
subset of backing map entries need to persisted in one chunk.

However, during the retrieval of the backing map during the server startup,
we accumulate all these chunks into a list and then process each chunk to
recreate the in-memory backing map. Since, all the chunks are fetched from
the persistence file and then processed, the memory requirement is higher.

With this change, the retrieval of bucket-cache from persistence file is
optimised to enable the processing of one chunk at a time to avoid high
memory utilisation.

Change-Id: I12ed252d543be120183cbe5a3e769e5cda7998c1
@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 45s 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 4m 27s master passed
+1 💚 compile 3m 43s master passed
+1 💚 checkstyle 0m 43s master passed
+1 💚 spotbugs 2m 0s master passed
+1 💚 spotless 0m 59s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+1 💚 mvninstall 4m 8s the patch passed
+1 💚 compile 3m 25s the patch passed
+1 💚 javac 3m 25s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 0m 43s the patch passed
+1 💚 spotbugs 2m 7s the patch passed
+1 💚 hadoopcheck 12m 7s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚 spotless 0m 53s patch has no errors when running spotless:check.
_ Other Tests _
+1 💚 asflicense 0m 12s The patch does not generate ASF License warnings.
43m 46s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6253/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #6253
JIRA Issue HBASE-28840
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
uname Linux 1d1b16e1b374 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 / 391fa44
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 90 (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-6253/1/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 40s Docker mode activated.
-0 ⚠️ yetus 0m 2s 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 59s master passed
+1 💚 compile 1m 11s master passed
+1 💚 javadoc 0m 35s master passed
+1 💚 shadedjars 6m 37s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 3m 46s the patch passed
+1 💚 compile 1m 9s the patch passed
+1 💚 javac 1m 9s the patch passed
+1 💚 javadoc 0m 30s the patch passed
+1 💚 shadedjars 6m 41s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
-1 ❌ unit 259m 50s /patch-unit-hbase-server.txt hbase-server in the patch failed.
289m 55s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6253/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #6253
JIRA Issue HBASE-28840
Optional Tests javac javadoc unit compile shadedjars
uname Linux dd1990fea445 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 / 391fa44
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6253/1/testReport/
Max. process+thread count 4526 (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-6253/1/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.

@jhungund
Copy link
Contributor Author

The failing test passes, when executed locally. The failure seems not related to the change.

[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.hadoop.hbase.replication.TestReplicationSmallTestsSync
[INFO] Running org.apache.hadoop.hbase.replication.TestNamespaceReplication
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.apache.hadoop.hbase.SystemExitRule (file:/Users/janardhan.hungund/hbase-down/hbase/hbase-common/target/hbase-common-4.0.0-alpha-1-SNAPSHOT-tests.jar)
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.hbase.SystemExitRule
WARNING: System::setSecurityManager will be removed in a future release
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.apache.hadoop.hbase.SystemExitRule (file:/Users/janardhan.hungund/hbase-down/hbase/hbase-common/target/hbase-common-4.0.0-alpha-1-SNAPSHOT-tests.jar)
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.hbase.SystemExitRule
WARNING: System::setSecurityManager will be removed in a future release
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.apache.hadoop.hbase.SystemExitRule$1 (file:/Users/janardhan.hungund/hbase-down/hbase/hbase-common/target/hbase-common-4.0.0-alpha-1-SNAPSHOT-tests.jar)
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.hbase.SystemExitRule$1
WARNING: System::setSecurityManager will be removed in a future release
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 95.073 s - in org.apache.hadoop.hbase.replication.TestNamespaceReplication
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.apache.hadoop.hbase.SystemExitRule$1 (file:/Users/janardhan.hungund/hbase-down/hbase/hbase-common/target/hbase-common-4.0.0-alpha-1-SNAPSHOT-tests.jar)
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.hbase.SystemExitRule$1
WARNING: System::setSecurityManager will be removed in a future release
[INFO] Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 250.167 s - in org.apache.hadoop.hbase.replication.TestReplicationSmallTestsSync
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 0

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 43s 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 3m 0s master passed
+1 💚 compile 3m 0s master passed
+1 💚 checkstyle 0m 38s master passed
+1 💚 spotbugs 1m 34s master passed
+1 💚 spotless 0m 45s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+1 💚 mvninstall 2m 53s 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 37s the patch passed
+1 💚 spotbugs 1m 40s the patch passed
+1 💚 hadoopcheck 10m 43s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚 spotless 0m 44s patch has no errors when running spotless:check.
_ Other Tests _
+1 💚 asflicense 0m 11s The patch does not generate ASF License warnings.
35m 51s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6253/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #6253
JIRA Issue HBASE-28840
Optional Tests dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless
uname Linux e26b7dd53084 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 / 391fa44
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-6253/2/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 15s 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 6s master passed
+1 💚 compile 0m 59s master passed
+1 💚 javadoc 0m 31s master passed
+1 💚 shadedjars 5m 23s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 2m 57s the patch passed
+1 💚 compile 0m 58s the patch passed
+1 💚 javac 0m 58s the patch passed
+1 💚 javadoc 0m 29s the patch passed
+1 💚 shadedjars 5m 15s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 218m 11s hbase-server in the patch passed.
242m 28s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6253/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #6253
JIRA Issue HBASE-28840
Optional Tests javac javadoc unit compile shadedjars
uname Linux feb4ea1f2c38 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 391fa44
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6253/2/testReport/
Max. process+thread count 5131 (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-6253/2/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 21381ba into apache:master Sep 18, 2024
wchevreuil pushed a commit that referenced this pull request Sep 18, 2024
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