Github user xuchuanyin commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2327#discussion_r190447991
--- 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 --
If so, I don't think it's good to call it `CarbonBloomFilter`, sounds like
that it's an implementation of BloomFilter in Carbondata, but actually it
contains business-related(blockletId for a datamapindex) information.
What I mean is that we can change it to another name like `BloomDMModel`
---