You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Hudson (Jira)" <ji...@apache.org> on 2022/11/03 19:18:00 UTC
[jira] [Commented] (HBASE-27458) Use ReadWriteLock for region scanner readpoint map
[ https://issues.apache.org/jira/browse/HBASE-27458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17628493#comment-17628493 ]
Hudson commented on HBASE-27458:
--------------------------------
Results for branch master
[build #713 on builds.a.o|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/713/]: (x) *{color:red}-1 overall{color}*
----
details (if available):
(x) {color:red}-1 general checks{color}
-- For more information [see general report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/713/General_20Nightly_20Build_20Report/]
(/) {color:green}+1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3) report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/713/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]
(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11 report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/713/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]
(/) {color:green}+1 source release artifact{color}
-- See build output for details.
(/) {color:green}+1 client integration test{color}
> Use ReadWriteLock for region scanner readpoint map
> ---------------------------------------------------
>
> Key: HBASE-27458
> URL: https://issues.apache.org/jira/browse/HBASE-27458
> Project: HBase
> Issue Type: Improvement
> Components: Scanners
> Affects Versions: 3.0.0-alpha-3
> Reporter: ruanhui
> Assignee: ruanhui
> Priority: Minor
> Fix For: 3.0.0-alpha-4
>
> Attachments: jstack-2.png
>
>
> Currently we manage the concurrency between the RegionScanner and getSmallestReadPoint by synchronizing on the scannerReadPoints object. In our production, we find that many read threads are blocked by this when we have a heavy read load.
> we need to get smallest read point when
> a. flush a memstore
> b. compact memstore/storefile
> c. do delta operation like increment/append
> Usually the frequency of these operations is much less than read requests.
> It's a little expensive to use an exclusive lock here because for region scanners, what it need to do is just calcaulating readpoint and putting the readpoint in the scanner readpoint map, which is thread-safe. Multiple read threads can do this in parallel without synchronization.
> Based on the above consideration, maybe we can replace the synchronized lock with readwrite lock. It will help improve the read performance if the bottleneck is on the synchronization here.
> !jstack.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)