Index: hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java (revision 1525179) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java (working copy) @@ -163,8 +163,12 @@ HConstants.ZEROES, false); } final Scan scan = new Scan(startRow).addFamily(HConstants.CATALOG_FAMILY); - int rows = Math.min(rowLimit, configuration.getInt(HConstants.HBASE_META_SCANNER_CACHING, - HConstants.DEFAULT_HBASE_META_SCANNER_CACHING)); + int scannerCaching = configuration.getInt(HConstants.HBASE_META_SCANNER_CACHING, + HConstants.DEFAULT_HBASE_META_SCANNER_CACHING); + if (rowUpperLimit <= scannerCaching) { + scan.setSmall(true); + } + int rows = Math.min(rowLimit, scannerCaching); scan.setCaching(rows); if (LOG.isTraceEnabled()) { LOG.trace("Scanning " + metaTableName.getNameAsString() + " starting at row=" + Index: hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java (revision 1525179) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java (working copy) @@ -738,9 +738,11 @@ * considered as a small scan. * * @param small + * @return this instance */ - public void setSmall(boolean small) { + public Scan setSmall(boolean small) { this.small = small; + return this; } /**