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)

Reply via email to