You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by si...@apache.org on 2022/09/09 21:21:21 UTC
[pinot] branch master updated: BloomFilterRule should only recommend for supported column type (#9364)
This is an automated email from the ASF dual-hosted git repository.
siddteotia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 2afd273c84 BloomFilterRule should only recommend for supported column type (#9364)
2afd273c84 is described below
commit 2afd273c84673fc321eb7f1b2dcb5c13d991b358
Author: Benson Yuan <yu...@gmail.com>
AuthorDate: Fri Sep 9 14:21:14 2022 -0700
BloomFilterRule should only recommend for supported column type (#9364)
---
.../controller/recommender/rules/impl/BloomFilterRule.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/recommender/rules/impl/BloomFilterRule.java b/pinot-controller/src/main/java/org/apache/pinot/controller/recommender/rules/impl/BloomFilterRule.java
index a2e9f2d93e..5a9de70e5d 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/recommender/rules/impl/BloomFilterRule.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/recommender/rules/impl/BloomFilterRule.java
@@ -19,7 +19,10 @@
package org.apache.pinot.controller.recommender.rules.impl;
import com.google.common.util.concurrent.AtomicDouble;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.request.context.FilterContext;
import org.apache.pinot.common.request.context.predicate.Predicate;
@@ -29,6 +32,7 @@ import org.apache.pinot.controller.recommender.rules.AbstractRule;
import org.apache.pinot.controller.recommender.rules.io.params.BloomFilterRuleParams;
import org.apache.pinot.controller.recommender.rules.utils.FixedLenBitset;
import org.apache.pinot.core.query.request.context.QueryContext;
+import org.apache.pinot.spi.data.FieldSpec.DataType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,6 +45,9 @@ import org.slf4j.LoggerFactory;
public class BloomFilterRule extends AbstractRule {
private static final Logger LOGGER = LoggerFactory.getLogger(BloomFilterRule.class);
private final BloomFilterRuleParams _params;
+ // Derived from BloomFilterHandler
+ private static final Set<DataType> COMPATIBLE_DATA_TYPES = new HashSet<>(
+ Arrays.asList(DataType.INT, DataType.LONG, DataType.FLOAT, DataType.DOUBLE, DataType.STRING, DataType.BYTES));
public BloomFilterRule(InputManager input, ConfigManager output) {
super(input, output);
@@ -68,7 +75,9 @@ public class BloomFilterRule extends AbstractRule {
for (int i = 0; i < numCols; i++) {
String dimName = _input.intToColName(i);
- if (((weights[i] / totalWeight.get()) > _params._thresholdMinPercentEqBloomfilter)
+ DataType columnType = _input.getFieldType(dimName);
+ if (COMPATIBLE_DATA_TYPES.contains(columnType)
+ && ((weights[i] / totalWeight.get()) > _params._thresholdMinPercentEqBloomfilter)
//The partitioned dimension should be frequently > P used
&& (_input.getCardinality(dimName)
< _params._thresholdMaxCardinalityBloomfilter)) { //The Cardinality < C (1 million for 1MB size)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org