diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/AggregateStatsCache.java b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/AggregateStatsCache.java index 586734d..eb1e0cc 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/AggregateStatsCache.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/AggregateStatsCache.java @@ -207,12 +207,15 @@ private AggrColStatsCached findBestMatch(List partNames, List maxVariance) { candidateMatchStats.put(candidate, new MatchStats(0, 0, true)); + continue; } // TTL check if (isExpired(candidate)) { candidateMatchStats.put(candidate, new MatchStats(0, 0, true)); } - candidateMatchStats.put(candidate, new MatchStats(0, 0, false)); + else { + candidateMatchStats.put(candidate, new MatchStats(0, 0, false)); + } } // We'll count misses as we iterate int maxMisses = (int) maxVariance * numPartsRequested; diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/hbase/TestAggregateStatsCache.java b/metastore/src/test/org/apache/hadoop/hive/metastore/hbase/TestAggregateStatsCache.java index 75a4b2a..fb36b44 100644 --- a/metastore/src/test/org/apache/hadoop/hive/metastore/hbase/TestAggregateStatsCache.java +++ b/metastore/src/test/org/apache/hadoop/hive/metastore/hbase/TestAggregateStatsCache.java @@ -20,9 +20,7 @@ package org.apache.hadoop.hive.metastore.hbase; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.api.ColumnStatisticsData; @@ -153,7 +151,7 @@ public void testAddGetWithVariance() { new BloomFilter(MAX_PARTITIONS_PER_CACHE_NODE, FALSE_POSITIVE_PROBABILITY); // The paritions we'll eventually request from the cache List partNames = new ArrayList(); - for (int i = minPart; i <= maxPart; i++) { + for (int i = minPart-1; i <= maxPart-1; i++) { String partName = tabParts.get(i); // Only add 50% partitions to partnames so that we can see if the request fails if (i < maxPart / 2) { @@ -164,7 +162,6 @@ public void testAddGetWithVariance() { // Now add to cache cache.add(dbName, tblName, colName, maxPart-minPart+1, aggrColStats, bloomFilter); // Now get from cache - System.out.println(partNames); AggrColStatsCached aggrStatsCached = cache.get(dbName, tblName, colName, partNames); Assert.assertNull(aggrStatsCached); }