Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java (revision 1524619) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java (working copy) @@ -54,7 +54,7 @@ private boolean enforceMVCC = false; - private static final AtomicLong seekCount = new AtomicLong(); + private static AtomicLong seekCount; private ScanQueryMatcher matcher; @@ -135,7 +135,7 @@ } public boolean seek(KeyValue key) throws IOException { - seekCount.incrementAndGet(); + if (seekCount != null) seekCount.incrementAndGet(); try { try { @@ -156,7 +156,7 @@ } public boolean reseek(KeyValue key) throws IOException { - seekCount.incrementAndGet(); + if (seekCount != null) seekCount.incrementAndGet(); try { try { @@ -375,6 +375,9 @@ static final long getSeekCount() { return seekCount.get(); } + static final void instrument() { + seekCount = new AtomicLong(); + } @Override public boolean shouldUseScanner(Scan scan, SortedSet columns, long oldestUnexpiredTS) { Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java (revision 1524619) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java (working copy) @@ -140,6 +140,9 @@ @Test public void testMultipleTimestampRanges() throws IOException { + // enable seek counting + StoreFileScanner.instrument(); + region = TEST_UTIL.createTestRegion("testMultipleTimestampRanges", new HColumnDescriptor(FAMILY) .setCompressionType(comprAlgo)