Jaanai created PHOENIX-4974:
-------------------------------
Summary: Gets all regions uses get requests serially is extremely
slows for table has lots of regions
Key: PHOENIX-4974
URL: https://issues.apache.org/jira/browse/PHOENIX-4974
Project: Phoenix
Issue Type: Improvement
Affects Versions: 5.0.0, 4.14.0
Reporter: Jaanai
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)