You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2020/08/20 13:37:15 UTC

[GitHub] [hbase] 1996fanrui opened a new pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

1996fanrui opened a new pull request #2288:
URL: https://github.com/apache/hbase/pull/2288


   In some cases where BlockType is known, BlockCache read performance can be improved


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] saintstack merged pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
saintstack merged pull request #2288:
URL: https://github.com/apache/hbase/pull/2288


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui edited a comment on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui edited a comment on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677748719


   > Nice patch, do you know of any other callers who can pass `BlockType` argument?
   
   @virajjasani Thanks for your comment.
   
   The main flow of get() will initialize Scanner and call StoreFileScanner.seek().Subsequent method call stack:
   
   StoreFileScanner.seek -> StoreFileScanner.seekAtOrAfter -> HFileReaderImpl.HFileScannerImpl#seekTo -> HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo
   
   In the loadDataBlockWithScanInfo method, the BlockType can be known according to the Tree Level. Here is the main process of reading data, the frequency of call is high, so from my understanding: the current patch should have some benefits.
   
   code link: https://github.com/apache/hbase/blob/1164531d5ab519ab58af82ba3849f8fcded3453f/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java#L322
   
   Other callers cannot get this benefit.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] saintstack commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
saintstack commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677921557


   
   The patch looks fine. My question is same as @virajjasani 
   
   `...should have some benefits.`
   
   Can you quantify at all?
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] virajjasani commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
virajjasani commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677709447


   Can you please take care of checkstyle issue reported above?


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] virajjasani removed a comment on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
virajjasani removed a comment on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677709447


   Can you please take care of checkstyle issue reported above?


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677693462


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   1m 17s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  1s |  No case conflicting files found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any @author tags.  |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 17s |  master passed  |
   | +1 :green_heart: |  checkstyle  |   1m 18s |  master passed  |
   | +1 :green_heart: |  spotbugs  |   2m 21s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 58s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m 18s |  hbase-server: The patch generated 1 new + 2 unchanged - 0 fixed = 3 total (was 2)  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace issues.  |
   | +1 :green_heart: |  hadoopcheck  |  12m 56s |  Patch does not cause any errors with Hadoop 3.1.2 3.2.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 42s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 14s |  The patch does not generate ASF License warnings.  |
   |  |   |  38m 35s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-general-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/2288 |
   | Optional Tests | dupname asflicense spotbugs hadoopcheck hbaseanti checkstyle |
   | uname | Linux e578c5f9ca6f 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 tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 1164531d5a |
   | checkstyle | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt |
   | Max. process+thread count | 84 (vs. ulimit of 12500) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) spotbugs=3.1.12 |
   | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677748719


   > Nice patch, do you know of any other callers who can pass `BlockType` argument?
   
   @virajjasani Thanks for your comment。
   
   The main flow of get() will initialize Scanner and call StoreFileScanner.seek().Subsequent method call stack:
   
   StoreFileScanner.seek -> StoreFileScanner.seekAtOrAfter -> HFileReaderImpl.HFileScannerImpl#seekTo -> HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo
   
   In the loadDataBlockWithScanInfo method, the BlockType can be known according to the Tree Level. Here is the main process of reading data, the frequency of call is high, so from my understanding: the current patch will have very big benefits.
   
   code link: https://github.com/apache/hbase/blob/1164531d5ab519ab58af82ba3849f8fcded3453f/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java#L322


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-678283076


   @virajjasani Thx. I have checked all the callers of getBlock, and other callers cannot get the benefits.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-678720298


   @saintstack Thanks for your review and merge. I have put the performance test report to JIRA.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] saintstack commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
saintstack commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-678379917


   Thank you for your notes on perf. Makes sense. Would suggest you put them on the JIRA itself @1996fanrui .


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677761211


   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   0m 29s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  2s |  Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 15s |  master passed  |
   | +1 :green_heart: |  compile  |   1m  7s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   5m 47s |  branch has no errors when building our shaded downstream artifacts.  |
   | -0 :warning: |  javadoc  |   0m 42s |  hbase-server in master failed.  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m  1s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m  7s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m  7s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   5m 49s |  patch has no errors when building our shaded downstream artifacts.  |
   | -0 :warning: |  javadoc  |   0m 40s |  hbase-server in the patch failed.  |
   ||| _ Other Tests _ |
   | -1 :x: |  unit  | 131m  7s |  hbase-server in the patch failed.  |
   |  |   | 157m  2s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/2288 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 7db3450bccb3 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 1164531d5a |
   | Default Java | 2020-01-14 |
   | javadoc | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-jdk11-hadoop3-check/output/branch-javadoc-hbase-server.txt |
   | javadoc | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-jdk11-hadoop3-check/output/patch-javadoc-hbase-server.txt |
   | unit | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt |
   |  Test Results | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/testReport/ |
   | Max. process+thread count | 3676 (vs. ulimit of 12500) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui edited a comment on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui edited a comment on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677748719


   > Nice patch, do you know of any other callers who can pass `BlockType` argument?
   
   @virajjasani Thanks for your comment.
   
   The main flow of get() will initialize Scanner and call StoreFileScanner.seek().Subsequent method call stack:
   
   StoreFileScanner.seek -> StoreFileScanner.seekAtOrAfter -> HFileReaderImpl.HFileScannerImpl#seekTo -> HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo
   
   In the loadDataBlockWithScanInfo method, the BlockType can be known according to the Tree Level. Here is the main process of reading data, the frequency of call is high, so from my understanding: the current patch should have some benefits.
   
   code link: https://github.com/apache/hbase/blob/1164531d5ab519ab58af82ba3849f8fcded3453f/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java#L322


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-678074907


   > The patch looks fine. My question is same as @virajjasani
   > 
   > `...should have some benefits.`
   > 
   > Can you quantify at all?
   
   @saintstack Hi, thanks for your comment.
   This is a simple test report:
   
   ### Test Conditions:
   `
   HBase version:	2.1.0
   JVM:	-Xmx2g -Xms2g 
   hfile.block.cache.size:0.02(40M)
   number of record:10,000,000(HFile 374.0 M)
   disk:SSD
   OS:CentOS Linux release 7.4.1708 (Core)
   JMH Benchmark:
   	@Fork(value = 3)
   	@Warmup(iterations = 60)
   	@Measurement(iterations = 60)
   `
   ### Test Results:
   
   id 1~5 means that when the patch is added, change the BlockCache size and test the performance of get respectively.
   
   ID 6~10 means that without the patch, change the BlockCache size and test the performance of get respectively.
   
   https://docs.google.com/spreadsheets/d/1fI4rk0nVKweyHANHhlcbtZZavxPh8WktEu-wQi-i-Fs/edit?usp=sharing
   
   ### Test conclusion:
   
   Adding the patch does not necessarily improve the performance, because the patch occupies a small proportion in the entire read process, and the read performance fluctuates, so after adding this function, the performance occasionally decreases.
   
   id 10 is the case where the data is completely in the BlockCache, and FlameGraph is attached. It can be seen that CombinedBlockCache.getBlock occupies 12.15%, and LruBlockCache.containsBlock occupies 1.05%. In theory, after adding the current patch, case 10 can optimize LruBlockCache.containsBlock, which means that it can save 1% of the CPU.
   
   **image link:**
   
   case 10 FlameGraph: https://drive.google.com/file/d/1Q-fyzTiLDKfPXP6Du33pDMe0Tw2Zyrhm/view?usp=sharing
   
   ConbinedBlockCache.getBlock.png: https://drive.google.com/file/d/1twwKfxXAZj_8tf8seaXahw6nHE2XfMPO/view?usp=sharing
   
   LruBlockCache.containsBlock.png: https://drive.google.com/file/d/13pQloaqziSgmKC3BEPYXgZpVyX2PFtxi/view?usp=sharing
   
   ### Note: 
   The above is my test plan. In theory, after adding the patch, the performance can only be improved and cannot be reduced, but the performance of some cases is reduced due to data fluctuations. 
   Can you provide some more scientific and reliable test plan? @saintstack Thanks.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-677806452


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   1m 13s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  2s |  Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 10s |  master passed  |
   | +1 :green_heart: |  compile  |   1m  2s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   6m 28s |  branch has no errors when building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 44s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 59s |  the patch passed  |
   | +1 :green_heart: |  compile  |   0m 59s |  the patch passed  |
   | +1 :green_heart: |  javac  |   0m 59s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m  5s |  patch has no errors when building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 36s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 220m 19s |  hbase-server in the patch passed.  |
   |  |   | 247m 11s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.12 Server=19.03.12 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/2288 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux a221af096464 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 tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 1164531d5a |
   | Default Java | 1.8.0_232 |
   |  Test Results | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/testReport/ |
   | Max. process+thread count | 3666 (vs. ulimit of 12500) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-2288/1/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] 1996fanrui edited a comment on pull request #2288: HBASE-24915 Improve BlockCache read performance by specifying BlockType

Posted by GitBox <gi...@apache.org>.
1996fanrui edited a comment on pull request #2288:
URL: https://github.com/apache/hbase/pull/2288#issuecomment-678074907


   > The patch looks fine. My question is same as @virajjasani
   > 
   > `...should have some benefits.`
   > 
   > Can you quantify at all?
   
   @saintstack Hi, thanks for your comment.
   This is a simple test report:
   
   ### Test Conditions:
   ```
   HBase version:	2.1.0
   JVM:	-Xmx2g -Xms2g 
   hfile.block.cache.size:0.02(40M)
   number of record:10,000,000(HFile 374.0 M)
   disk:SSD
   OS:CentOS Linux release 7.4.1708 (Core)
   JMH Benchmark:
   	@Fork(value = 3)
   	@Warmup(iterations = 60)
   	@Measurement(iterations = 60)
   ```
   
   ### Test Results:
   
   id 1~5 means that when the patch is added, change the BlockCache size and test the performance of get respectively.
   
   ID 6~10 means that without the patch, change the BlockCache size and test the performance of get respectively.
   
   https://docs.google.com/spreadsheets/d/1fI4rk0nVKweyHANHhlcbtZZavxPh8WktEu-wQi-i-Fs/edit?usp=sharing
   
   ### Test conclusion:
   
   Adding the patch does not necessarily improve the performance, because the patch occupies a small proportion in the entire read process, and the read performance fluctuates, so after adding this function, the performance occasionally decreases.
   
   id 10 is the case where the data is completely in the BlockCache, and FlameGraph is attached. It can be seen that CombinedBlockCache.getBlock occupies 12.15%, and LruBlockCache.containsBlock occupies 1.05%. In theory, after adding the current patch, case 10 can optimize LruBlockCache.containsBlock, which means that it can save 1% of the CPU.
   
   **image link:**
   
   case 10 FlameGraph: https://drive.google.com/file/d/1Q-fyzTiLDKfPXP6Du33pDMe0Tw2Zyrhm/view?usp=sharing
   
   ConbinedBlockCache.getBlock.png: https://drive.google.com/file/d/1twwKfxXAZj_8tf8seaXahw6nHE2XfMPO/view?usp=sharing
   
   LruBlockCache.containsBlock.png: https://drive.google.com/file/d/13pQloaqziSgmKC3BEPYXgZpVyX2PFtxi/view?usp=sharing
   
   ### Note: 
   The above is my test plan. In theory, after adding the patch, the performance can only be improved and cannot be reduced, but the performance of some cases is reduced due to data fluctuations. 
   Can you provide some more scientific and reliable test plan? @saintstack Thanks.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org