[
https://issues.apache.org/jira/browse/PHOENIX-4974?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16656194#comment-16656194
]
Jaanai commented on PHOENIX-4974:
---------------------------------
Maybe we can incremental refresh region locations that is changed on the server
side if the client can know what the region location transferred is, which
means is only getting one or a few locations information once, but it seems
that we can not get the relation of parent regions to their daughter from the
META table, right? [~lhofhansl][~apurtell]
On the other hand, to implement incremental queries is also important for
getting more stable latency of queries.
> Gets all regions uses get requests is extremely slows for big table
> --------------------------------------------------------------------
>
> Key: PHOENIX-4974
> URL: https://issues.apache.org/jira/browse/PHOENIX-4974
> Project: Phoenix
> Issue Type: Improvement
> Affects Versions: 4.14.0, 5.0.0
> Reporter: Jaanai
> Assignee: Jaanai
> Priority: Blocker
> Attachments: PHOENIX-4974-master.patch, performance.png
>
>
> When executes the first query after started the client(SQLline or
> initializing JDBC client ), needs to load region locations to the client
> cache. Now the following is key implement :
> {code:java}
> List<HRegionLocation> locations = Lists.newArrayList();
> byte[] currentKey = HConstants.EMPTY_START_ROW;
> do {
> HRegionLocation regionLocation =
> connection.getRegionLocation(
> TableName.valueOf(tableName), currentKey, reload);
> locations.add(regionLocation);
> currentKey = regionLocation.getRegionInfo().getEndKey();
> } while (!Bytes.equals(currentKey, HConstants.EMPTY_END_ROW));
> {code}
> For some big tables which have more than ten thousand regions, this
> procedure is extremely slow.
> Runs a look points query on the table that has 10000 regions after starting
> the client, it needs 25+ seconds.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)