Github user ravipesala commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2327#discussion_r189882515
  
    --- Diff: 
datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMap.java
 ---
    @@ -94,20 +83,21 @@ public void setIndexedColumn(Set<String> indexedColumn) 
{
         List<BloomQueryModel> bloomQueryModels = 
getQueryValue(filterExp.getFilterExpression());
         for (BloomQueryModel bloomQueryModel : bloomQueryModels) {
           LOGGER.debug("prune blocklet for query: " + bloomQueryModel);
    -      BloomDataMapCache.CacheKey cacheKey = new BloomDataMapCache.CacheKey(
    +      BloomCacheKeyValue.CacheKey cacheKey = new 
BloomCacheKeyValue.CacheKey(
               this.indexPath.toString(), bloomQueryModel.columnName);
    -      List<BloomDMModel> bloomDMModels = 
this.bloomDataMapCache.getBloomDMModelByKey(cacheKey);
    -      for (BloomDMModel bloomDMModel : bloomDMModels) {
    -        boolean scanRequired = 
bloomDMModel.getBloomFilter().membershipTest(new Key(
    +      BloomCacheKeyValue.CacheValue cacheValue = cache.get(cacheKey);
    +      List<CarbonBloomFilter> bloomIndexList = 
cacheValue.getBloomFilters();
    +      for (CarbonBloomFilter bloomFilter : bloomIndexList) {
    +        boolean scanRequired = bloomFilter.membershipTest(new Key(
                 convertValueToBytes(bloomQueryModel.dataType, 
bloomQueryModel.filterValue)));
             if (scanRequired) {
               LOGGER.debug(String.format("BloomCoarseGrainDataMap: Need to 
scan -> blocklet#%s",
    -              String.valueOf(bloomDMModel.getBlockletNo())));
    -          Blocklet blocklet = new Blocklet(shardName, 
String.valueOf(bloomDMModel.getBlockletNo()));
    +              String.valueOf(bloomFilter.getBlockletNo())));
    --- End diff --
    
    I feel extra object is not required to just store blockletid, so ideally 
one bloomfilter belongs to one blocklet thats why moved inside carbonbloomfilter


---

Reply via email to