diff --git hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java index 6b70a88..ee323a9 100644 --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java @@ -186,7 +186,7 @@ public class ClientAsyncPrefetchScanner extends ClientScanner { capacity = DEFAULT_QUEUE_CAPACITY; } } - return capacity; + return Math.max(capacity, 1); } private boolean prefetchCondition() { @@ -197,11 +197,11 @@ public class ClientAsyncPrefetchScanner extends ClientScanner { } private int getCountThreshold() { - return cacheCapacity / 2 ; + return Math.max(cacheCapacity / 2, 1); } private long getSizeThreshold() { - return maxScannerResultSize / 2 ; + return Math.max(maxScannerResultSize / 2, 1); } private long getCacheSizeInBytes() { diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.java hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.java index 6f91515..b516cbb 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.java @@ -152,11 +152,21 @@ public class TestServerSideScanMetricsFromClientSide { } @Test - public void testRowsSeenMetric() throws Exception { + public void testRowsSeenMetricWithSync() throws Exception { + testRowsSeenMetric(false); + } + + @Test + public void testRowsSeenMetricWithAsync() throws Exception { + testRowsSeenMetric(true); + } + + private void testRowsSeenMetric(boolean async) throws Exception { // Base scan configuration Scan baseScan; baseScan = new Scan(); baseScan.setScanMetricsEnabled(true); + baseScan.setAsyncPrefetch(async); testRowsSeenMetric(baseScan); // Test case that only a single result will be returned per RPC to the serer