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

Reply via email to