[
https://issues.apache.org/jira/browse/HBASE-30161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18083945#comment-18083945
]
Hudson commented on HBASE-30161:
--------------------------------
Results for branch master
[build #42 on
builds.a.o|https://ci-hbase.apache.org/job/HBase-Backwards-Compatibility-Test/job/master/42/]:
(/) *{color:green}+1 overall{color}*
----
Backwards compatibility checks:
(/) {color:green}+1 jdk17 hadoop 3.3.5 backward compatibility checks{color}
-- For more information [see jdk17
report|https://ci-hbase.apache.org/job/HBase-Backwards-Compatibility-Test/job/master/42/console]
(/) {color:green}+1 jdk17 hadoop 3.3.6 backward compatibility checks{color}
-- For more information [see jdk17
report|https://ci-hbase.apache.org/job/HBase-Backwards-Compatibility-Test/job/master/42/console]
(/) {color:green}+1 jdk17 hadoop 3.4.0 backward compatibility checks{color}
-- For more information [see jdk17
report|https://ci-hbase.apache.org/job/HBase-Backwards-Compatibility-Test/job/master/42/console]
(/) {color:green}+1 jdk17 hadoop 3.4.1 backward compatibility checks{color}
-- For more information [see jdk17
report|https://ci-hbase.apache.org/job/HBase-Backwards-Compatibility-Test/job/master/42/console]
(/) {color:green}+1 jdk17 hadoop 3.4.2 backward compatibility checks{color}
-- For more information [see jdk17
report|https://ci-hbase.apache.org/job/HBase-Backwards-Compatibility-Test/job/master/42/console]
> Add paginated, single-RPC RegionLocator.getRegionLocations(startKey, limit)
> API for bulk meta-cache warmup
> ----------------------------------------------------------------------------------------------------------
>
> Key: HBASE-30161
> URL: https://issues.apache.org/jira/browse/HBASE-30161
> Project: HBase
> Issue Type: Improvement
> Reporter: Sanjeet Malhotra
> Assignee: Sanjeet Malhotra
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0-alpha-1, 2.7.0, 3.0.0-beta-2, 2.6.6
>
>
> `RegionLocator.getAllRegionLocations()` is currently the only bulk API
>
> to fetch all region locations of a table. Internally it opens a
> `ResultScanner` against `hbase:meta` via
>
> `MetaTableAccessor.scanMetaForTableRegions(...)` and drives
>
> `scanner.next()` in a loop — so the number of RPCs is
>
> `ceil(numRegions / hbase.meta.scanner.caching)`.
>
>
>
> This is a problem for clients (e.g. Phoenix) that want to perform a
>
> *bulk warmup* of their region-location cache after a fresh JVM start
>
> while serializing meta access. The natural pattern is to wrap the call
>
> in a lock — mirroring what `ConnectionImplementation.locateRegionInMeta`
>
> already does for single-region lookups via `userRegionLock`. But
>
> because `getAllRegionLocations()` does N RPCs under one logical call:
>
>
>
> * The lock-timeout budget has to grow with table size — there is no
>
> sensible fixed value that works for both 10-region and 10000-region
>
> tables.
>
> * A single slow RPC inside the loop blocks all other meta lookups for
> the duration.
>
> * Per-call duration is no longer constant w.r.t. data volume.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)