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)