Index: src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java (revision 1530496) +++ src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java (working copy) @@ -52,7 +52,7 @@ private boolean enforceMVCC = false; - private static final AtomicLong seekCount = new AtomicLong(); + private static AtomicLong seekCount; private ScanQueryMatcher matcher; @@ -133,7 +133,7 @@ } public boolean seek(KeyValue key) throws IOException { - seekCount.incrementAndGet(); + if (seekCount != null) seekCount.incrementAndGet(); try { try { @@ -154,7 +154,7 @@ } public boolean reseek(KeyValue key) throws IOException { - seekCount.incrementAndGet(); + if (seekCount != null) seekCount.incrementAndGet(); try { try { @@ -366,6 +366,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: src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java (revision 1530496) +++ src/test/java/org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java (working copy) @@ -142,6 +142,8 @@ @Test public void testMultipleTimestampRanges() throws IOException { + // enable seek counting + StoreFileScanner.instrument(); region = TEST_UTIL.createTestRegion(TestSeekOptimizations.class.getName(), new HColumnDescriptor(FAMILY) .setCompressionType(comprAlgo)