This is an automated email from the ASF dual-hosted git repository. jackie 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 41c98d7 replication factor to be obtained from tenant configuration in case of dimension table (#7848) 41c98d7 is described below commit 41c98d7dc3a4fc35b0cf36a0d37dc3fba03ca469 Author: Manish Soni <msoni6...@gmail.com> AuthorDate: Thu Dec 2 23:40:24 2021 +0530 replication factor to be obtained from tenant configuration in case of dimension table (#7848) --- .../controller/validation/StorageQuotaChecker.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/validation/StorageQuotaChecker.java b/pinot-controller/src/main/java/org/apache/pinot/controller/validation/StorageQuotaChecker.java index 3e526ad..d69225b 100644 --- a/pinot-controller/src/main/java/org/apache/pinot/controller/validation/StorageQuotaChecker.java +++ b/pinot-controller/src/main/java/org/apache/pinot/controller/validation/StorageQuotaChecker.java @@ -19,17 +19,20 @@ package org.apache.pinot.controller.validation; import com.google.common.base.Preconditions; +import java.util.Set; +import javax.inject.Inject; import org.apache.pinot.common.exception.InvalidConfigException; import org.apache.pinot.common.metrics.ControllerGauge; import org.apache.pinot.common.metrics.ControllerMetrics; +import org.apache.pinot.controller.helix.core.PinotHelixResourceManager; import org.apache.pinot.controller.util.TableSizeReader; import org.apache.pinot.spi.config.table.QuotaConfig; import org.apache.pinot.spi.config.table.TableConfig; +import org.apache.pinot.spi.config.table.TenantConfig; import org.apache.pinot.spi.utils.DataSizeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - /** * Class to check if a new segment is within the configured storage quota for the table * @@ -37,6 +40,9 @@ import org.slf4j.LoggerFactory; public class StorageQuotaChecker { private static final Logger LOGGER = LoggerFactory.getLogger(StorageQuotaChecker.class); + @Inject + PinotHelixResourceManager _pinotHelixResourceManager; + private final TableSizeReader _tableSizeReader; private final TableConfig _tableConfig; private final ControllerMetrics _controllerMetrics; @@ -80,7 +86,18 @@ public class StorageQuotaChecker { // 3. update predicted segment sizes // 4. is the updated size within quota QuotaConfig quotaConfig = _tableConfig.getQuotaConfig(); - int numReplicas = _tableConfig.getValidationConfig().getReplicationNumber(); + int numReplicas; + + if (_tableConfig.isDimTable()) { + // If the table is a dimension table then fetch the tenant config and get the number of server belonging + // to the tenant + TenantConfig tenantConfig = _tableConfig.getTenantConfig(); + Set<String> serverInstances = _pinotHelixResourceManager.getAllInstancesForServerTenant(tenantConfig.getServer()); + numReplicas = serverInstances.size(); + } else { + numReplicas = _tableConfig.getValidationConfig().getReplicationNumber(); + } + final String tableNameWithType = _tableConfig.getTableName(); if (quotaConfig == null || quotaConfig.getStorage() == null) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org