@Override protected void processTable(String tableNameWithType) { TableConfig tableConfig = _pinotHelixResourceManager.getTableConfig(tableNameWithType); if (tableConfig == null) { LOGGER.warn("Failed to find table config for table: {}, skipping broker resource validation", tableNameWithType); return; } // Rebuild broker resource Set<String> brokerInstances = _pinotHelixResourceManager .getAllInstancesForBrokerTenant(_instanceConfigs, tableConfig.getTenantConfig().getBroker()); _pinotHelixResourceManager.rebuildBrokerResource(tableNameWithType, brokerInstances); }
/** * Get all the broker instances for the given table name. * * @param tableName Table name with or without type suffix * @return List of broker instance Ids */ @Nonnull public List<String> getBrokerInstancesFor(@Nonnull String tableName) { String brokerTenantName = null; TableConfig offlineTableConfig = ZKMetadataProvider.getOfflineTableConfig(_propertyStore, tableName); if (offlineTableConfig != null) { brokerTenantName = offlineTableConfig.getTenantConfig().getBroker(); } else { TableConfig realtimeTableConfig = ZKMetadataProvider.getRealtimeTableConfig(_propertyStore, tableName); if (realtimeTableConfig != null) { brokerTenantName = realtimeTableConfig.getTenantConfig().getBroker(); } } return HelixHelper.getInstancesWithTag(_helixZkManager, TagNameUtils.getBrokerTagForTenant(brokerTenantName)); }
public PinotResourceManagerResponse rebuildBrokerResourceFromHelixTags(String tableNameWithType) throws Exception { TableConfig tableConfig; try { tableConfig = ZKMetadataProvider.getTableConfig(_propertyStore, tableNameWithType); } catch (Exception e) { LOGGER.warn("Caught exception while getting table config for table {}", tableNameWithType, e); throw new InvalidTableConfigException( "Failed to fetch broker tag for table " + tableNameWithType + " due to exception: " + e.getMessage()); } if (tableConfig == null) { LOGGER.warn("Table " + tableNameWithType + " does not exist"); throw new InvalidConfigException( "Invalid table configuration for table " + tableNameWithType + ". Table does not exist"); } return rebuildBrokerResource(tableNameWithType, getAllInstancesForBrokerTenant(tableConfig.getTenantConfig().getBroker())); }
public List<String> getBrokerInstancesForTable(String tableName, TableType tableType) { TableConfig tableConfig = getTableConfig(tableName, tableType); String brokerTenantName = TagNameUtils.getBrokerTagForTenant(tableConfig.getTenantConfig().getBroker()); List<String> serverInstances = HelixHelper.getInstancesWithTag(_helixZkManager, brokerTenantName); return serverInstances; }
private void addInstanceToBrokerIdealState(String brokerTenantTag, String instanceName) { IdealState tableIdealState = _helixAdmin.getResourceIdealState(_helixClusterName, CommonConstants.Helix.BROKER_RESOURCE_INSTANCE); for (String tableNameWithType : tableIdealState.getPartitionSet()) { TableConfig tableConfig = ZKMetadataProvider.getTableConfig(_propertyStore, tableNameWithType); Preconditions.checkNotNull(tableConfig); String brokerTag = TagNameUtils.getBrokerTagForTenant(tableConfig.getTenantConfig().getBroker()); if (brokerTag.equals(brokerTenantTag)) { tableIdealState.setPartitionState(tableNameWithType, instanceName, BrokerOnlineOfflineStateModel.ONLINE); } } _helixAdmin .setResourceIdealState(_helixClusterName, CommonConstants.Helix.BROKER_RESOURCE_INSTANCE, tableIdealState); }
private void validateLoadedConfig(TableConfig config) { Assert.assertEquals(config.getTableName(), "mytable_OFFLINE"); Assert.assertEquals(config.getQuotaConfig().getStorage(), "125 GiB"); Assert.assertEquals(config.getValidationConfig().getRetentionTimeValue(), "5"); Assert.assertEquals(config.getValidationConfig().getRetentionTimeUnit(), "DAYS"); Assert.assertEquals(config.getTenantConfig().getBroker(), "foo"); Assert.assertEquals(config.getTenantConfig().getServer(), "bar"); Assert.assertEquals(config.getIndexingConfig().getSortedColumn(), Lists.newArrayList("foo")); } }
} else { tenantConfig = tableConfig.getTenantConfig(); if (tenantConfig.getBroker() == null || tenantConfig.getServer() == null) { throw new InvalidTableConfigException("Tenant is not configured for table: " + tableNameWithType); String brokerTenantName = TagNameUtils.getBrokerTagForTenant(tenantConfig.getBroker()); List<String> brokersForTenant = HelixHelper.getInstancesWithTag(_helixZkManager, brokerTenantName); if (brokersForTenant.isEmpty()) {
Assert.assertNotNull(tableConfig.getTenantConfig()); Assert.assertEquals(tableConfig.getTenantConfig().getServer(), "aServerTenant"); Assert.assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); Assert .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); Assert .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); Assert.assertNull(tableConfig.getTenantConfig().getTagOverrideConfig()); Assert.assertNotNull(tableConfig.getTenantConfig()); Assert.assertEquals(tableConfig.getTenantConfig().getServer(), "aServerTenant"); Assert.assertEquals(tableConfig.getTenantConfig().getBroker(), "aBrokerTenant"); Assert.assertNotNull(tableConfig.getTenantConfig().getTagOverrideConfig()); Assert.assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig().getRealtimeConsuming(), .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); Assert .assertEquals(tableConfigToCompare.getTenantConfig().getBroker(), tableConfig.getTenantConfig().getBroker()); Assert.assertNotNull(tableConfigToCompare.getTenantConfig().getTagOverrideConfig()); Assert.assertEquals(tableConfig.getTenantConfig().getTagOverrideConfig(), .assertEquals(tableConfigToCompare.getTenantConfig().getServer(), tableConfig.getTenantConfig().getServer()); Assert